157333330SLaurent Vivier#!/bin/sh 257333330SLaurent Vivier 3*e2dcdceaSLaurent VivierURL=https://raw.githubusercontent.com/strace/strace/master/src 457333330SLaurent VivierFILES="sysent.h sysent_shorthand_defs.h linux/mips/syscallent-compat.h \ 5*e2dcdceaSLaurent Vivier linux/mips/syscallent-o32.h linux/32/syscallent-common-32.h \ 6*e2dcdceaSLaurent Vivier linux/generic/syscallent-common.h" 757333330SLaurent Vivier 857333330SLaurent Vivieroutput="$1" 957333330SLaurent Vivierif [ "$output" = "" ] ; then 1057333330SLaurent Vivier output="$PWD" 1157333330SLaurent Vivierfi 1257333330SLaurent Vivier 1357333330SLaurent VivierINC=linux-user/mips/syscall-args-o32.c.inc 1457333330SLaurent Vivier 1557333330SLaurent VivierTMP=$(mktemp -d) 1657333330SLaurent Viviercd $TMP 1757333330SLaurent Vivier 1857333330SLaurent Vivierfor file in $FILES; do 19*e2dcdceaSLaurent Vivier curl --create-dirs $URL/$file -o $TMP/$file 2057333330SLaurent Vivierdone 2157333330SLaurent Vivier 22*e2dcdceaSLaurent Vivier> linux/generic/subcallent.h 23*e2dcdceaSLaurent Vivier> linux/32/subcallent.h 2457333330SLaurent Vivier 2557333330SLaurent Viviercat > gen_mips_o32.c <<EOF 2657333330SLaurent Vivier#include <stdio.h> 2757333330SLaurent Vivier 2857333330SLaurent Vivier#define LINUX_MIPSO32 2957333330SLaurent Vivier#define MAX_ARGS 7 3057333330SLaurent Vivier 3157333330SLaurent Vivier#include "sysent.h" 3257333330SLaurent Vivier#include "sysent_shorthand_defs.h" 3357333330SLaurent Vivier 3457333330SLaurent Vivier#define SEN(syscall_name) 0,0 3557333330SLaurent Vivierconst struct_sysent sysent0[] = { 3657333330SLaurent Vivier#include "syscallent-o32.h" 3757333330SLaurent Vivier}; 3857333330SLaurent Vivier 3957333330SLaurent Vivierint main(void) 4057333330SLaurent Vivier{ 4157333330SLaurent Vivier int i; 4257333330SLaurent Vivier 4357333330SLaurent Vivier for (i = 4000; i < sizeof(sysent0) / sizeof(struct_sysent); i++) { 4457333330SLaurent Vivier if (sysent0[i].sys_name == NULL) { 4557333330SLaurent Vivier printf(" [% 4d] = MIPS_SYSCALL_NUMBER_UNUSED,\n", i - 4000); 4657333330SLaurent Vivier } else { 4757333330SLaurent Vivier printf(" [% 4d] = %d, /* %s */\n", i - 4000, 4857333330SLaurent Vivier sysent0[i].nargs, sysent0[i].sys_name); 4957333330SLaurent Vivier } 5057333330SLaurent Vivier } 5157333330SLaurent Vivier 5257333330SLaurent Vivier return 0; 5357333330SLaurent Vivier} 5457333330SLaurent VivierEOF 5557333330SLaurent Vivier 56*e2dcdceaSLaurent Viviercc -o gen_mips_o32 -I linux/mips -I linux/generic gen_mips_o32.c && ./gen_mips_o32 > "$output/$INC" 5757333330SLaurent Vivier 5857333330SLaurent Vivierrm -fr "$TMP" 59