Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Unified Diff: sysdeps/unix/make-syscalls.sh

Issue 7737022: Change make-syscalls.sh to make syscall interception possible. (Closed) Base URL: http://git.chromium.org/native_client/nacl-glibc.git@master
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sysdeps/unix/make-syscalls.sh
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 34ef9241cbb0690df0701d0e92d2cb9ce47cebe3..06f72e61bae9326e5f01a9459fc9c36f598a196d 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -159,12 +159,88 @@ shared-only-routines += $file
(echo '/* Dummy module requested by syscalls.list */'; \\"
;;
x*)
+ case $args in
+ *:*)
+ set `echo $args |
pasko-google - do not use 2011/09/06 14:18:56 type=`echo ...`
khim 2011/09/06 14:25:34 We need sed construct to pull other argument types
+ sed -e 's/^\(.\):\(.*\)/\2 \10/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \11/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \12/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \13/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \14/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \15/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \16/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \17/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \18/' \
+ -e 's/^\([^ ]\)\(.*\)/\2 \19/'`
+ ;;
+ *) set int;;
pasko-google - do not use 2011/09/06 14:18:56 too many leading spaces
khim 2011/09/06 14:25:34 Done.
+ esac
+ rtn=$1; shift
+ case $rtn in
+ [bp]*) frtn='void *';;
+ *) frtn='int ';;
+ esac
echo "\
\$(make-target-directory)
- (echo 'int __unimplemented_syscall(const char *name);'; \\
- echo 'int $strong (void);'; \\
- echo 'libc_hidden_proto ($strong)'; \\
- echo 'int $strong (void) { return __unimplemented_syscall(\"$syscall\"); }'; \\
+ (echo '#define $strong ${strong}_RENAMED'; \\"
+ for name in $weak; do
+ case $name in
+ *@@*)
+ base=`echo $name | sed 's/@@.*//'`
+ echo " echo '#define $base ${base}_RENAMED'; \\"
+ ;;
+ *@*)
+ base=`echo $name | sed 's/@.*//'`
+ echo " echo '#define $base ${base}_RENAMED'; \\"
+ ;;
+ *)
+ echo " echo '#define $name ${name}_RENAMED'; \\"
pasko-google - do not use 2011/09/06 14:18:56 base=$name .. esac echo "..."
khim 2011/09/06 14:25:34 Done.
+ ;;
+ esac
+ done
+ echo "\
+ echo '#include <sysdep.h>'; \\
+ echo '#undef $strong'; \\"
+ for name in $weak; do
+ case $name in
+ *@@*)
+ base=`echo $name | sed 's/@@.*//'`
+ echo " echo '#undef $base'; \\"
+ ;;
+ *@*)
+ base=`echo $name | sed 's/@.*//'`
+ echo " echo '#undef $base'; \\"
+ ;;
+ *)
+ echo " echo '#undef $name'; \\"
pasko-google - do not use 2011/09/06 14:18:56 ditto
khim 2011/09/06 14:25:34 Done.
+ ;;
+ esac
+ done
+ echo "\
+ echo '$frtn$strong ( ); /* $args */'; \\
+ echo 'libc_hidden_proto ($strong)'; \\"
+ echo -n " echo '$frtn$strong ("
+ sprtr=
+ for arg; do
+ echo -n "$sprtr"
+ case $arg in
+ [abIpP]*) echo -n "void *$arg";;
+ f*) echo -n "int $arg[2]";;
+ i*) echo -n "int $arg";;
+ n*) echo -n "size_t $arg";;
+ [sS]*) echo -n "char *$arg";;
+ V*) echo -n "unsigned char *$arg";;
+ W*) echo -n "int *$arg";;
+ esac
+ sprtr=", "
+ done
+ echo ") {'; \\"
+ echo -n " echo ' return INLINE_SYSCALL ($syscall, $nargs"
+ for arg; do
+ echo -n ", $arg"
+ done
+ echo ");'; \\
+ echo '}'; \\
echo 'strong_alias ($strong, __${syscall}_nocancel)'; \\
echo 'libc_hidden_def ($strong)'; \\"
;;
@@ -210,7 +286,7 @@ shared-only-routines += $file
echo " echo 'libc_hidden_def ($name)'; \\"
;;
*)
- echo " echo 'int $name (void);'; \\"
+ echo " echo '$frtn$name ( );'; \\"
echo " echo 'libc_hidden_proto ($name)'; \\"
echo " echo 'weak_alias ($strong, $name)'; \\"
echo " echo 'libc_hidden_weak ($name)'; \\"
« sysdeps/nacl/unsupported/call_fallocate.S ('K') | « sysdeps/nacl/unsupported/call_pselect6.S ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698