[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    [W:0.025 / U:105.644 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site