File: process.c

package info (click to toggle)
icmake 6.21-4
  • links: PTS
  • area: main
  • in suites: hamm, potato, slink
  • size: 1,964 kB
  • ctags: 1,053
  • sloc: ansic: 9,245; makefile: 1,139; sh: 141; asm: 126
file content (42 lines) | stat: -rw-r--r-- 1,059 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
\funcref{process}{void process ()}
    {}
    {}
    {getopcode()}
    {}
    {process.c}
    {
        Function {\em process()} is the main loop of the execution of the
        binary makefile. It is called from {\em main()} when the variables are
        read and when the offsets of the variable section and of the strings
        section are known.

        An opcode is retrieved from the binary makefile and appropriate action
        is taken until an {\em op\_ret} opcode is encountered.
    }
*/

#include "icm-exec.h"

void process ()
{
    register
        OPCODE_ op;

    arghead = xstrdup (nullstring);
    argtail = xstrdup (nullstring);
    cmdhead = xstrdup (nullstring);
    cmdtail = xstrdup (nullstring);

    do
    {
        curoffs = (unsigned) ftell (infile);
        if ( (op = getopcode (infile)) >= op_hlt || op == -1 )
        {
            fprintf (stderr, "bad opcode at %s ", hexstring (curoffs, 4));
            error ("(opcode %s)", hexstring (op, 2));
        }
        procfun [op] ();
    }
    while (op != op_exit);
}