зеркало из https://github.com/github/ruby.git
* io.c (rb_f_syscall): Add 64bit Linux support. Some syscall takes
long type arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
38f129397b
Коммит
caab5dcee7
|
@ -1,3 +1,8 @@
|
|||
Wed Jan 12 23:55:48 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
|
||||
|
||||
* io.c (rb_f_syscall): Add 64bit Linux support. Some syscall takes
|
||||
long type arguments.
|
||||
|
||||
Wed Jan 12 19:37:10 2011 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* vm_dump.c: parenthesize macro arguments.
|
||||
|
|
12
io.c
12
io.c
|
@ -7839,6 +7839,18 @@ rb_f_syscall(int argc, VALUE *argv)
|
|||
# else
|
||||
# error ---->> it is asserted that __syscall takes the first argument and returns retval in 64bit signed integer. <<----
|
||||
# endif
|
||||
#elif defined linux
|
||||
# define SYSCALL syscall
|
||||
# define NUM2SYSCALLID(x) NUM2LONG(x)
|
||||
# define RETVAL2NUM(x) LONG2NUM(x)
|
||||
/*
|
||||
* Linux man page says, syscall(2) function prototype is below.
|
||||
*
|
||||
* int syscall(int number, ...);
|
||||
*
|
||||
* But, it's incorrect. Actual one takes and returned long. (see unistd.h)
|
||||
*/
|
||||
long num, retval = -1;
|
||||
#else
|
||||
# define SYSCALL syscall
|
||||
# define NUM2SYSCALLID(x) NUM2INT(x)
|
||||
|
|
Загрузка…
Ссылка в новой задаче