[SeaBIOS] Pending patch summary

Sebastian Herbszt herbszt at gmx.de
Fri Sep 24 21:38:58 CEST 2010


Kevin O'Connor wrote:
>  Sebastian Herbszt: 20100731:
>  EDD fixes
> 
>  * Initial patch looked like it may break backwards compatibility; I
>    haven't seen a new patch.

We could use an union to keep backwards compatibility. Something like the
following (for Bochs):

  typedef struct {
    Bit16u  size;
    Bit16u  infos;
    Bit32u  cylinders;
    Bit32u  heads;
    Bit32u  spt;
    Bit32u  sector_count1;
    Bit32u  sector_count2;
    Bit16u  blksize;
    Bit16u  dpte_offset;
    Bit16u  dpte_segment;
    Bit16u  key;
    union {
        struct {
            Bit8u   dpi_length;
            Bit8u   reserved1;
            Bit16u  reserved2;
            Bit8u   host_bus[4];
            Bit8u   iface_type[8];
            Bit8u   iface_path[8];
            Bit8u   device_path[8];
            Bit8u   reserved3;
            Bit8u   checksum;
          } phoenix;
        struct {
            Bit8u   dpi_length;
            Bit8u   reserved1;
            Bit16u  reserved2;
            Bit8u   host_bus[4];
            Bit8u   iface_type[8];
            Bit8u   iface_path[8];
            Bit8u   device_path[16];
            Bit8u   reserved3;
            Bit8u   checksum;
          } t13;
      } dpi;
  } dpt_t;

Use dpi.phoenix for size = 66 and dpi.t13 for size = 74.
Since the first part of phoenix and t13 is same the union could start at
device_path.

Sebastian




More information about the SeaBIOS mailing list