seabios-bounces@seabios.org wrote on 11/22/2010 07:40:36 PM:


>
> Cc:

>
> seabios

>
> On Mon, Nov 22, 2010 at 12:08:33PM -0500, Stefan Berger wrote:
> > The attached patch implements support for the transparent call of
> > functions in 32 bit space from 16 bit code and allows up to 6
> [...]
> > +        // Disable irqs (and clear direction flag)
> > +        cli
> > +        cld
> > +
> > +        // Disable nmi
> > +        movl $CMOS_RESET_CODE|NMI_DISABLE_BIT, %eax
> > +        outb %al, $PORT_CMOS_INDEX
> > +        inb $PORT_CMOS_DATA, %al
> > +
> > +        // enable a20
> > +        inb $PORT_A20, %al
> > +        orb $A20_ENABLE_BIT, %al
> > +        outb %al, $PORT_A20
>
> It should be possible to extend call32() to do what you need -
> duplicating this functionality is a non-starter.


Yes, this block is duplicated, but the code around it is different than what exists.

Would you want the same type of transparency in the code, i.e., using the function tables and
the tricks with the #defines? Either way is fine, but it gives me direction on how to proceed.

  Stefan