File: process.c

package info (click to toggle)
icmake 7.18.00-2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 2,840 kB
  • sloc: ansic: 7,784; makefile: 3,811; sh: 319; cpp: 83
file content (43 lines) | stat: -rw-r--r-- 1,028 bytes parent folder | download | duplicates (4)
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
43
/*
\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 "opcodefun.ih"

void process ()
{
    register OPCODE_ op;

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

    do
    {
        curoffs = (size_t)ftell(infile);
        op = getopcode(infile);

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