File: process.c

package info (click to toggle)
icmake 6.30-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,360 kB
  • ctags: 1,415
  • sloc: ansic: 7,727; makefile: 1,465; sh: 244; asm: 126; cpp: 39
file content (43 lines) | stat: -rw-r--r-- 1,021 bytes parent folder | download
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 = (unsigned)ftell(infile);
        op = getopcode(infile);

        if (op >= 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);
}