[lkml]   [2001]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
I have a routine from a DOS driver that looks like this:

static int getslotinfo( void )
static char buff[320], *s=&buff[0]; int valid;
int86x(0x15, &inregs, &outregs, &sregs);
if(!valid) {[itconf]; DiSC_Id.dma=buff[dmachd]; }
(full DOS-code is at

Doing some research learned me that this piece of code does the
following things (according to

1) set AX register to 0xd800
2) set slot number to DiSC_Id.slot, (eg. 1 in my case -> base is
3) set function number to read
4) assign a 320-byte buffer for standard configuration data block
5) execute a software interrupt via the DOS specific int86x function,
this puts configuration data into the 320-byte buffer.
6) check if we get a valid return
7) if we have a valid situation, assign values from the configuration
block to (it level) and DiSC_Id.dma (dma level)

So here's my question:

On I can see that this is all
about reading data from an EISA SYSTEM ROM. I can't imagine there
doesn't exist some linux-API that allows me to do just the same.

What function calls and header files should I use in order to read
this 'EISA SYSTEM ROM' and assign the correct values to and
DiSC_Id.dma ?

If there doesn't exist an API for this, what memory ranges should i
probe in order to get these values?

Thanks for answers,

Ing. Bart Vandewoestyne
Hugo Verrieststraat 48 GSM: +32 (0)478 397 697
B-8550 Zwevegem
"Any fool can know, the point is to understand." - Albert Einstein
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at
 \ /
  Last update: 2005-03-22 12:58    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean