Date: Tue, 09 Aug 2005 15:45:41 +0000 From: "ari edelkind" <edelkind-freebsd-hackers@episec.com> To: freebsd-hackers@freebsd.org Subject: Re: Using sysarch specific syscalls in assembly? Message-ID: <20050809154541.C057243D45@mx1.FreeBSD.org> In-Reply-To: <20050809133109.GA15300@skatecity>
next in thread | previous in thread | raw e-mail | index | archive | help
On 8/9/2005, "alexander" <arundel@h3c.de> wrote:
[...]
>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=09=09165=09; syscall sysarch(2)
>%define I386_SET_IOPERM 4=09; i386_set_ioperm(2) number
>
>ioperm_args=09dd=09378h
>=09=09dd=093
>=09=09dd=091
>
>OpenIO:
>=09push byte ioperm_args
>=09push dword I386_SET_IOPERM
>=09mov eax,SYSARCH
>=09Call _syscall
[...]
You need to push a _pointer_ to a structure as your second argument to
sysarch(2). This means something more along the lines of:
ioperm_args dd 378h
dd 3
dd 1
argp dd ioperm_args
[...]
push dword argp
push dword I386_SET_IOPERM
[...]
Get this wrong, and you'll have unpredictable results.
ari
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050809154541.C057243D45>
