On Tue, 26 Nov 2002, Ronald G. Minnich wrote:

> On Tue, 26 Nov 2002, Adam Sulmicki wrote:
> 
> > well it always could be intermediate solution. In this way we only have 4
> > data structures and no functions.
> 
> sounds like we need a union, with a tag, and then the descriptors. In the 
> limit, the tag can be TAG_CODE, meaning you have to call the attached data 
> blob:
> 
> enum {TAG_CODE, TAG_PCI_CONFIG, TAG_ISA, TAG_CPU} ; 
> 
> typedef struct {
>       unsigned short vendor, device;
>       u8 function, register;
>       u8 and, or;
> } pci_config_data;
> 
> typedef struct {
>       u16 iobase;
>       u8 and, or;
> } isa;
> 
> typedef struct {
>       unsigned long msr;
>       unsigned long long and, or;
> } cpu;
> 
> // has to be PIC.
> typedef struct {
>       unsigned long len;
>       char code;
> } code;
>  
> typedef struct {
>       u8 tag;
>       union {
>               pci_config_data pci;
>               isa isa;
>               cpu cpu;
>               code code;
>       } data;
> };
> 
> Would this do it?

I'm willing to write some of this if nobody else can, and if it would 
work.

ron

_______________________________________________
Linuxbios mailing list
[EMAIL PROTECTED]
http://www.clustermatic.org/mailman/listinfo/linuxbios

Reply via email to