[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
(This message will disappear, once this node revised.)
struct grad_instr_call { grad_instr_t *entry; }; typedef struct grad_instr_call grad_instr_call_t; |
Instructions of type grad_instr_call
instruct the engine to
call the given subprogram. The engine pushes the current
instruction
<FIXME> definition of current instruction or pc? </>
to the return
point stack
<FIXME> definition of this? </>
and branches to instruction
entry
. Execution of the subprogram ends when the engine
encounters an instruction of one of the following types:
grad_instr_return
, grad_instr_reply
or grad_instr_proxy
.
If grad_instr_return
is encountered, the engine pops the
instruction from the top of the return point stack and makes it
current instruction, then it branches to the next
node.
If grad_instr_reply
or grad_instr_proxy
is encountered,
the engine, after executing corresponding actions, finishes executing
the program.
In the second form defun-name is a name of the RPL subprogram
defined by defun
.
First form:
(CALL (ACTION "myfun(%[User-Name])") (REPLY Access-Reject ("Reply-Message" . "Access Denied"))) |
Second form:
(CALL process_users) |