Frage zu SysCall
-
Hallo,
ich habe mal eine frage und hoffe das ich hier richtig bin.
Und zwar wenn ich jetzt ein system call machen will brauche ich ja die dazugehörige nummmer,bzw den define befehl.Und genau darum geht es jetzt.
wenn ich in der unistd.h gucke ist z.b der open befehl auf nr 1015. Aber laut kernel call table sollte der auf 5 sitzen? ich finde leider nichts passendes im netz dazu. Ausser das es evtl daran liegen tut, das es ein generic-kern ist aber dann sollte es doch eine tabelle für jeden tryp geben oder???
-
Betriebssystem, Hardware, ...
-
Ubuntu 11.04
Asus EEEPC 1000Haber meine frage war eher drauf bedacht wenn ich es crossbuilden will.
Ob es so eine Art liste gibt. Die Architektur der kernel die tabelle???
-
Nr.5 sollte schon passen.
weiteres Infobrett z.B. hier:
http://www.lcs-chemie.de/assemb.htm
-
Hmmm versteh ich nett bei mir liegt Open auf 1024
Aber nochmal ne Frage. Danach müssen ja die Parameter im ebx. Für O_xxxx
Die sind deklariert in fcntl.h. Wenn ich jetzt
Wronly 00000001
Append 00000100
Creat. 00002000Mache werde diese ja bin geodert macht also 0x835
Aber warum legt der beim disasemblieren 0x441 da rein
-
Also wenn ich in /usr/include/asm/unistd_64.h reingucke steht bei mir
#define __NR_open 2
__SYSCALL(__NR_open, sys_open)und es geht nur bis 302
Ich verstehe nicht wo du da ne 1015 gesehen haben willst (oder bin ich in der falschen Datei?)
-
#define __NR_io_setup 0
__SYSCALL(__NR_io_setup, sys_io_setup)
#define __NR_io_destroy 1
__SYSCALL(__NR_io_destroy, sys_io_destroy)
#define __NR_io_submit 2
__SYSCALL(__NR_io_submit, sys_io_submit)
#define __NR_io_cancel 3
__SYSCALL(__NR_io_cancel, sys_io_cancel)
#define __NR_io_getevents 4
__SYSCALL(__NR_io_getevents, sys_io_getevents)/* fs/xattr.c */
#define __NR_setxattr 5
__SYSCALL(__NR_setxattr, sys_setxattr).
.
.#ifdef __ARCH_WANT_SYSCALL_NO_AT
#define __NR_open 1024
__SYSCALL(__NR_open, sys_open)
#define __NR_link 1025
__SYSCALL(__NR_link, sys_link)EDIT
so habs rausgefunden das eine. ist oktale schreibweise wenn es mit 0 anfängt
2000 oktal =1024dez
-
Ok Bei unistd_32 ist open bei der 5 (hätte nich gedacht dasses da Unterschiede gibt)
Dein Fehler ist dass du bei den Dateisystem-syscalls guckst, also denen für den reinen Festplattenzugriff auf Hardwareebene. Was auf der 5 ist ist der Syscall zum öffnen einer Datei (wobeid as Dateisystem das unbequeme hantieren mit Festplattendetails übernimmt)