mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-02 15:25:21 +00:00
x86: Teach syscall table generating script accept argument
We'll have to generate syscall table in another form, prepare for it . Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
@@ -17,7 +17,7 @@ CFLAGS += -c -fpie -Wstrict-prototypes -Wa,--noexecstack -D__ASSEMBLY__ -nostdl
|
|||||||
$(SYS-ASM): $(SYS-GEN) $(SYS-DEF) $(SYS-ASM-COMMON) $(SYS-TYPES)
|
$(SYS-ASM): $(SYS-GEN) $(SYS-DEF) $(SYS-ASM-COMMON) $(SYS-TYPES)
|
||||||
$(E) " GEN " $@
|
$(E) " GEN " $@
|
||||||
$(Q) $(SH) \
|
$(Q) $(SH) \
|
||||||
$(SYS-GEN) \
|
$(SYS-GEN) --asm \
|
||||||
$(SYS-DEF) \
|
$(SYS-DEF) \
|
||||||
$(SYS-CODES) \
|
$(SYS-CODES) \
|
||||||
$(SYS-PROTO) \
|
$(SYS-PROTO) \
|
||||||
|
@@ -1,32 +1,39 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
in=$1
|
function gen_asm() {
|
||||||
codesout=$2
|
in=$1
|
||||||
protosout=$3
|
codesout=$2
|
||||||
asmout=$4
|
protosout=$3
|
||||||
asmcommon=$5
|
asmout=$4
|
||||||
prototypes=`echo $6 | sed -e 's/.*include\///g'`
|
asmcommon=$5
|
||||||
|
prototypes=`echo $6 | sed -e 's/.*include\///g'`
|
||||||
|
|
||||||
codesdef=`echo $codesout | sed -e 's/.*\/include\///g' | tr "[[:space:]].-" _`
|
codesdef=`echo $codesout | sed -e 's/.*\/include\///g' | tr "[[:space:]].-" _`
|
||||||
protosdef=`echo $protosout | sed -e 's/.*\/include\///g' | tr "[[:space:]].-" _`
|
protosdef=`echo $protosout | sed -e 's/.*\/include\///g' | tr "[[:space:]].-" _`
|
||||||
|
|
||||||
echo "/* Autogenerated, don't edit */" > $codesout
|
echo "/* Autogenerated, don't edit */" > $codesout
|
||||||
echo "#ifndef $codesdef" >> $codesout
|
echo "#ifndef $codesdef" >> $codesout
|
||||||
echo "#define $codesdef" >> $codesout
|
echo "#define $codesdef" >> $codesout
|
||||||
|
|
||||||
echo "/* Autogenerated, don't edit */" > $protosout
|
echo "/* Autogenerated, don't edit */" > $protosout
|
||||||
echo "#ifndef $protosdef" >> $protosout
|
echo "#ifndef $protosdef" >> $protosout
|
||||||
echo "#define $protosdef" >> $protosout
|
echo "#define $protosdef" >> $protosout
|
||||||
echo "#include \"$prototypes\"" >> $protosout
|
echo "#include \"$prototypes\"" >> $protosout
|
||||||
echo "#include \"$codesout\"" >> $protosout
|
echo "#include \"$codesout\"" >> $protosout
|
||||||
|
|
||||||
echo "/* Autogenerated, don't edit */" > $asmout
|
echo "/* Autogenerated, don't edit */" > $asmout
|
||||||
echo "#include \"$codesout\"" >> $asmout
|
echo "#include \"$codesout\"" >> $asmout
|
||||||
echo "#include \"$asmcommon\"" >> $asmout
|
echo "#include \"$asmcommon\"" >> $asmout
|
||||||
|
|
||||||
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "#define", $1, $2}' >> $codesout
|
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "#define", $1, $2}' >> $codesout
|
||||||
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "extern long ", $3, $4, ";"}' >> $protosout
|
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "extern long ", $3, $4, ";"}' >> $protosout
|
||||||
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", $3, ",", $2, ")"}' >> $asmout
|
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", $3, ",", $2, ")"}' >> $asmout
|
||||||
|
|
||||||
echo "#endif /* $codesdef */" >> $codesout
|
echo "#endif /* $codesdef */" >> $codesout
|
||||||
echo "#endif /* $protosdef */" >> $protosout
|
echo "#endif /* $protosdef */" >> $protosout
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "--asm" ]; then
|
||||||
|
shift
|
||||||
|
gen_asm $@
|
||||||
|
fi
|
||||||
|
Reference in New Issue
Block a user