#include <stdio.h>
#include <sys/types.h>
#include "bios.h"
extern u_short smi(short, short, u_short);
extern u_short smi2(short, short, u_short *);
u_short bios_write(short mode, u_short data)
{
u_short ret;
ret = smi(BIOS_OPEN, 0x0000, 0x0000);
if ((ret & 0xff00) != 0x0000){
fprintf(stderr, "bios_write: Can not open BIOS: ret=0x%x, mode=0x%x\n", ret, mode);
exit(1);
}
ret = smi(BIOS_SET, mode, data) & 0xff00;
smi(BIOS_CLOSE, 0x0000, 0x0000);
return (ret);
}
u_short bios_read(short mode, u_short *p)
{
u_short ret;
ret = smi(BIOS_OPEN, 0x0000, 0x0000);
if ((ret & 0xff00) != 0x0000){
fprintf(stderr, "bios_read: Can not open BIOS: ret=0x%x, mode=0x%x\n", ret, mode);
exit(1);
}
ret = smi2(BIOS_GET, mode, p) & 0xff00;
smi(BIOS_CLOSE, 0x0000, 0x0000);
return (ret);
}
syntax highlighted by Code2HTML, v. 0.9.1