At 01:47 PM 10/18/2007, Yuri wrote:
> You can try here:
> http://www.ctyme.com/intr/int-80.htm
>
Thanks Derek.
This site just says: parameters on stack.
So when following this I write the function 'mysyscall' (below) it doesn't
work.
It should return 3 but returns 14.
And I am on i386.
So something is missing.
Yuri
--- code----
#include <fcntl.h>
extern int mysyscall (
int syscall_no,
int a1, int a2, int a3,
int a4, int a5, int a6);
asm(
".text\n"
"mysyscall:\n"
" push 28(%esp)\n"
" push 24(%esp)\n"
" push 20(%esp)\n"
" push 16(%esp)\n"
" push 12(%esp)\n"
" push 8(%esp)\n"
" push 4(%esp)\n"
" int $0x80\n"
" pop %ecx\n"
" pop %ecx\n"
" pop %ecx\n"
" pop %ecx\n"
" pop %ecx\n"
" pop %ecx\n"
" pop %ecx\n"
" ret\n"
".previous\n"
);
main() {
char *fname = "myxxxfile";
//int fd = open(fname, O_WRONLY|O_CREAT);
int fd = mysyscall(5/*open*/, (int)fname,O_WRONLY|O_CREAT,0,0,0,0); // open
printf("fd=%i\n",fd);
}
I guess I'd ask why you want to use syscall at all to just open a file? I
thought you wanted to access some hardware and had no other way to do that.
-Derek
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"