[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: basic system call question



On Mon, May 14, 2001 at 12:45:49PM +0200, Erik Mouw wrote:
> On Mon, May 14, 2001 at 08:51:07AM +0100, Ralph Corderoy wrote:
> > > Why is the syscall "int 0x80"?  Is this where the system is actually
> > > executed with the arguments previously listed?  It is not the return
> > > value, and the system call number is already 42.
> > 
> > The `int 0x80' generates the interrupt that switches to the kernel
> > which in turn seems to examine the %eax register to see what system
> > call is required.  I'd guess all system calls generate the same
> > interrupt, 0x80, and the only thing to distuinguish between them is the
> > value of %eax.
> 
> Your guess is correct (for i386, that is ;).

As long as you are only using Linux binaries and not SVR3/SVR4 or
BSD a.out binaries - they use the lcall7 (lcall27 for Solaris/ix86)
trapgate instead...

	Christoph

-- 
Of course it doesn't work. We've performed a software upgrade.
-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.kernelnewbies.org/