On Tuesday 09 August 2005 09:31 am, alexander wrote:
> On Tue Aug  9 05, Robert Watson wrote:
> > In general, it is much preferable that applications link against libc to
> > get the system call stubs than that they directly invoke system calls.
> > That way, if compatibility interfaces are introduced, etc, the
> > application will continue to function.  For example, there was at one
> > point a migration away from explicit system calls to set certain kernel
> > parameters, such as hostname and domainname, towards using sysctl, with
> > the system calls being marked obsolete.  The C library still provides a
> > sethostname() interface, which is actually a wrapper in user space around
> > sysctl().  So invoking the C function provided by libc for a system call
> > will generally be preferred, even if the originating code is assembly.
> >
> > Robert N M Watson
>
> Thx. I'll try that.
>
> Unfortunately I'm experiencing some problems right now. From time to time
> I'm getting a
>
> 'Bus error: 10 (core dumped)'
>
> This however appears randomly. One time I run the app everything works
> fine,the next time it core dumps. Are there any errors in my code?
>
> %define SYSARCH               165     ; syscall sysarch(2)
> %define I386_SET_IOPERM 4     ; i386_set_ioperm(2) number
>
> ioperm_args   dd      378h
>               dd      3
>               dd      1
>
> OpenIO:
>       push byte ioperm_args
>       push dword I386_SET_IOPERM
>       mov eax,SYSARCH
>       Call _syscall
>       lea esp,[esp+8]
>       ret

Just change this to:

        push byte ioperm_args           ; this might be wrong, you need
                                        ; to be pushing a 32-bit pointer
                                        ; to the ioperm_args structure, not
                                        ; a byte
        push dword I386_SET_IOPERM
        call sysarch
        addl $8,%esp
        ret

To use the sysarch() function in libc.

-- 
John Baldwin <[EMAIL PROTECTED]>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to