diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-04-14 00:52:06 +0200 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-04-20 19:14:44 +0200 |
commit | 309c723003add5c465a87cf9db70cf31db8fcf04 (patch) | |
tree | 1b1c9ccb12a268b7c5a048aa07b4f3e15c2e8f98 /shell | |
parent | f7ac25c247dd4274b10c672003ed424695c375cb (diff) | |
download | busybox-w32-309c723003add5c465a87cf9db70cf31db8fcf04.tar.gz busybox-w32-309c723003add5c465a87cf9db70cf31db8fcf04.tar.bz2 busybox-w32-309c723003add5c465a87cf9db70cf31db8fcf04.zip |
win32: ash: macros for implementing simple foo_size, foo_copy
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c index 1326182fe..afe443518 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -13280,6 +13280,41 @@ int ash_main(int argc UNUSED_PARAM, char **argv) | |||
13280 | /* NOTREACHED */ | 13280 | /* NOTREACHED */ |
13281 | } | 13281 | } |
13282 | 13282 | ||
13283 | /* | ||
13284 | * forkshell_prepare() and friends | ||
13285 | */ | ||
13286 | #define SLIST_SIZE_BEGIN(name,type) \ | ||
13287 | static void \ | ||
13288 | name(type *p) \ | ||
13289 | { \ | ||
13290 | while (p) { \ | ||
13291 | funcblock = (char *) funcblock + sizeof(type); | ||
13292 | /* do something here with p */ | ||
13293 | #define SLIST_SIZE_END() \ | ||
13294 | nodeptrsize++; \ | ||
13295 | p = p->next; \ | ||
13296 | } \ | ||
13297 | } | ||
13298 | |||
13299 | #define SLIST_COPY_BEGIN(name,type) \ | ||
13300 | static type * \ | ||
13301 | name(type *vp) \ | ||
13302 | { \ | ||
13303 | type *start; \ | ||
13304 | type **vpp; \ | ||
13305 | vpp = &start; \ | ||
13306 | while (vp) { \ | ||
13307 | *vpp = funcblock; \ | ||
13308 | funcblock = (char *) funcblock + sizeof(type); | ||
13309 | /* do something here with vpp and vp */ | ||
13310 | #define SLIST_COPY_END() \ | ||
13311 | SAVE_PTR((*vpp)->next); \ | ||
13312 | vp = vp->next; \ | ||
13313 | vpp = &(*vpp)->next; \ | ||
13314 | } \ | ||
13315 | *vpp = NULL; \ | ||
13316 | return start; \ | ||
13317 | } | ||
13283 | 13318 | ||
13284 | /*- | 13319 | /*- |
13285 | * Copyright (c) 1989, 1991, 1993, 1994 | 13320 | * Copyright (c) 1989, 1991, 1993, 1994 |