|
|
|
|
|
|
|
/** link, |
|
typedef struct _Link Link; |
struct _Link { Link* next; p4xt exec; }; |
typedef struct _Chain Chain; |
struct _Chain { Link link; |
|
P4RUNTIME1(p4_new_chain, p4_variable_RT); |
|
void p4_do_chain (Link* link) { while (link) { if (link->exec) { FX_CALL_EXECUTE (link->exec); } link = link->next; } } |
void p4_do_chain (p4xt* link) { while (link) { if (link[1]) { FX_CALL_EXECUTE (link[1]); } link = (void*) link[0]; } } |
|
while ((p4xt*)(__link)) { \ if (((p4xt*)(__link))[1]) { \ FX_CALL_EXECUTE (((p4xt*)(__link))[1]); } \ (p4xt*)__link = (void*) (((p4xt*)(__link))[0]); \ } |
} while(0) |
|
|
|
|
|
|
P4_LISTWORDS (chain) =
{
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
(, ),
|
|
|