Date: Mon, 7 Apr 2008 05:53:01 -0700 (PDT) From: Unga <unga888@yahoo.com> To: freebsd-questions@freebsd.org Subject: Re: Inline assembly under FreeBSD Message-ID: <633057.52431.qm@web57012.mail.re3.yahoo.com> In-Reply-To: <ftd005$f7r$1@ger.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--- Ivan Voras <ivoras@freebsd.org> wrote: > Wojciech Puchar wrote: > >> asm("pushfl; stc; int $0x13; setc %%al; > popfl" > >> : "+a" (ax), "+b" (bx), "=c" (cx), "+d" > (dx) > >> : : "esi", "edi"); > >> > >> if ((u8)ax) > >> return -1; /* No extended information > */ > >> else > >> return 1; /* Extended information > available */ > >> } > >> > >> When it is executing the int $0x13, it crashes > with > >> "Program received signal SIGBUS, Bus error." > >> > >> Could you guys give me a helping hand to identify > >> what's the problem? > >> > >> Input and return values are at: > >> http://en.wikipedia.org/wiki/INT_13 > > > > you are in 32-bit mode > > To be a little bore verbose: FreeBSD and all other > modern operating > systems run in some variation of "protected mode", > as opposed to DOS > which ran in "real mode". When you run any program > as a user in such an > operating system, the program doesn't have direct > access to hardware, > and the many other low-level details of the program > execution are very > much different than in DOS. Specifically in this > case, you cannot call > DOS and BIOS interrupts from protected mode. > > If you need to do something with raw data on a disk > drive, there are > ways to do it (see g_open(3) on recent versions of > FreeBSD) but the user > executing the program needs sufficient > privileges/rights for the > operation to be successful. > > Thanks Ivan and Wojciech for replies. So protected mode is the issue. I'll read more on g_open(3). Unga ____________________________________________________________________________________ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. http://tc.deals.yahoo.com/tc/blockbuster/text5.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?633057.52431.qm>