cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

update-mips-syscall-args.sh (1273B)


      1#!/bin/sh
      2
      3URL=https://raw.githubusercontent.com/strace/strace/master/src
      4FILES="sysent.h sysent_shorthand_defs.h linux/mips/syscallent-compat.h \
      5       linux/mips/syscallent-o32.h linux/32/syscallent-common-32.h \
      6       linux/generic/syscallent-common.h"
      7
      8output="$1"
      9if [ "$output" = "" ] ; then
     10    output="$PWD"
     11fi
     12
     13INC=linux-user/mips/syscall-args-o32.c.inc
     14
     15TMP=$(mktemp -d)
     16cd $TMP
     17
     18for file in $FILES; do
     19    curl --create-dirs $URL/$file -o $TMP/$file
     20done
     21
     22> linux/generic/subcallent.h
     23> linux/32/subcallent.h
     24
     25cat > gen_mips_o32.c <<EOF
     26#include <stdio.h>
     27
     28#define LINUX_MIPSO32
     29#define MAX_ARGS 7
     30
     31#include "sysent.h"
     32#include "sysent_shorthand_defs.h"
     33
     34#define SEN(syscall_name) 0,0
     35const struct_sysent sysent0[] = {
     36#include  "syscallent-o32.h"
     37};
     38
     39int main(void)
     40{
     41    int i;
     42
     43    for (i = 4000; i < sizeof(sysent0) / sizeof(struct_sysent); i++) {
     44        if (sysent0[i].sys_name == NULL) {
     45            printf("    [% 4d] = MIPS_SYSCALL_NUMBER_UNUSED,\n", i - 4000);
     46        } else {
     47            printf("    [% 4d] = %d, /* %s */\n", i - 4000,
     48                   sysent0[i].nargs, sysent0[i].sys_name);
     49        }
     50    }
     51
     52    return 0;
     53}
     54EOF
     55
     56cc -o gen_mips_o32 -I linux/mips -I linux/generic gen_mips_o32.c && ./gen_mips_o32 > "$output/$INC"
     57
     58rm -fr "$TMP"