This reduces the casts in calling code.
memcpy(h->oem_table_id + 4, (void*)&sig, 4);
h->oem_revision = cpu_to_le32(1);
h->asl_compiler_revision = cpu_to_le32(1);
- h->checksum = -checksum((void *)h, len);
+ h->checksum = -checksum(h, len);
}
#define SSDT_SIGNATURE 0x54445353// SSDT
rsdp->signature = RSDP_SIGNATURE;
memcpy(rsdp->oem_id, CONFIG_APPNAME6, 6);
rsdp->rsdt_physical_address = cpu_to_le32(rsdt_addr);
- rsdp->checksum = -checksum((void *)rsdp, 20);
+ rsdp->checksum = -checksum(rsdp, 20);
RsdpAddr = rsdp;
/* RSDT */
fdpt->a0h_signature = 0xa0;
// Checksum structure.
- u8 sum = checksum((u8*)fdpt, sizeof(*fdpt)-1);
+ u8 sum = checksum(fdpt, sizeof(*fdpt)-1);
fdpt->checksum = -sum;
}
if (rom->signature != OPTION_ROM_SIGNATURE)
return 0;
u32 len = rom->size * 512;
- u8 sum = checksum((void*)rom, len);
+ u8 sum = checksum(rom, len);
if (sum != 0) {
dprintf(1, "Found option rom with bad checksum: loc=%p len=%d sum=%x\n"
, rom, len, sum);
dprintf(3, "init PIR table\n");
PIR_TABLE.pir.signature = PIR_SIGNATURE;
- PIR_TABLE.pir.checksum = -checksum((u8*)&PIR_TABLE, sizeof(PIR_TABLE));
+ PIR_TABLE.pir.checksum = -checksum(&PIR_TABLE, sizeof(PIR_TABLE));
PirOffset = (u32)&PIR_TABLE.pir - BUILD_BIOS_ADDR;
}
PNPHEADER.real_ip = (u32)entry_pnp_real - BUILD_BIOS_ADDR;
PNPHEADER.prot_ip = (u32)entry_pnp_prot - BUILD_BIOS_ADDR;
- PNPHEADER.checksum = -checksum((u8*)&PNPHEADER, sizeof(PNPHEADER));
+ PNPHEADER.checksum = -checksum(&PNPHEADER, sizeof(PNPHEADER));
}
// Sum the bytes in the specified area.
u8
-checksum_far(u16 buf_seg, u8 *buf_far, u32 len)
+checksum_far(u16 buf_seg, void *buf_far, u32 len)
{
SET_SEG(ES, buf_seg);
u32 i;
u8 sum = 0;
for (i=0; i<len; i++)
- sum += GET_VAR(ES, buf_far[i]);
+ sum += GET_VAR(ES, ((u8*)buf_far)[i]);
return sum;
}
u8
-checksum(u8 *buf, u32 len)
+checksum(void *buf, u32 len)
{
return checksum_far(GET_SEG(SS), buf, len);
}
// util.c
inline u32 stack_hop(u32 eax, u32 edx, u32 ecx, void *func);
-u8 checksum_far(u16 buf_seg, u8 *buf_far, u32 len);
-u8 checksum(u8 *buf, u32 len);
+u8 checksum_far(u16 buf_seg, void *buf_far, u32 len);
+u8 checksum(void *buf, u32 len);
void *memset(void *s, int c, size_t n);
void *memcpy(void *d1, const void *s1, size_t len);
inline void memcpy_far(u16 d_seg, void *d_far