aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-04-14 00:52:06 +0200
committerNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-04-20 19:14:44 +0200
commit309c723003add5c465a87cf9db70cf31db8fcf04 (patch)
tree1b1c9ccb12a268b7c5a048aa07b4f3e15c2e8f98 /shell
parentf7ac25c247dd4274b10c672003ed424695c375cb (diff)
downloadbusybox-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.c35
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) \
13287static void \
13288name(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) \
13300static type * \
13301name(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