示例#1
0
function make()
{
    $args = parse_syscall_args(SYSPROTO_H);
    $tab_name = getSyscallNames();
    $info = merge_name_args($args, $tab_name);
    $size = get_size($info);
    $begin = get_static_begin($size["size_tab"] + 1, $size["max_size_proto"] + 1);
    $str_tab = get_ctab_syscall($info, $size["size_tab"]);
    $tt = $begin . "" . $str_tab . "  };\n";
    file_put_contents("./syscall_info.h", $tt);
}
示例#2
0
            }
            $aLine = split(":", $newline);
            if (count($aLine) != 2) {
                dieError("Error while spliting [{$newline}]");
            }
            $aSyscallNames[$aLine[1]] = $aLine[0];
        }
    }
    return $aSyscallNames;
}
function dieError($msg)
{
    die("ERROR: {$msg}\n");
}
//var_dump(getSyscallNames());
$syscalls = getSyscallNames();
$filname = "syscall_names.h";
if (($max_syscalls = array_search("MAXSYSCALL", $syscalls)) < 0) {
    dieError("No such index: MAXSYSCALL");
}
$strfile = "\n#ifndef __SYSCALL_NAMES__\n# define __SYSCALL_NAMES__\n# include <sys/syscall.h>\n\nchar *SYSCALL_NAMES[SYS_MAXSYSCALL + 1] = {\n";
echo "We have {$max_syscalls} MAXSYSCALL.\n";
for ($i = 0; $i < $max_syscalls; $i++) {
    if (isset($syscalls[$i])) {
        $strfile .= "\t\"" . $syscalls[$i] . "\",\n";
    } else {
        $strfile .= "\t0,\n";
    }
}
$strfile .= "\t0\n};\n\n#endif\n";
if (!file_put_contents($filname, $strfile)) {