[coreboot] seemingly wrong code in src/arch/i386/boot/coreboot_table.c

ron minnich rminnich at gmail.com
Sat May 9 05:06:36 CEST 2009


I don't understand this code.

Here it is.

#if (HAVE_OPTION_TABLE == 1)
        {
                struct lb_record *rec_dest, *rec_src;
                /* Write the option config table... */
                rec_dest = lb_new_record(head);
                rec_src = (struct lb_record *)(void *)&option_table;
                memcpy(rec_dest,  rec_src, rec_src->size);
                /* Create cmos checksum entry in coreboot table */
                lb_cmos_checksum(head);
        }
#endif


Note the cast of rec_src.

But option_table is this:
unsigned char option_table[] = {
	0xc8,0x00,0x00,0x00,0x88,0x04,0x00,0x00,0x0c,0x00,


Why is this cast being done? This code is different in older versions
of this file.

Thanks

ron




More information about the coreboot mailing list