39static inline int isOpenBiosPresent() {
40 uintptr_t* a0table = (uintptr_t*)0x200;
41 return (a0table[11] & 3) == 1;
44static inline uint32_t getOpenBiosApiVersion() {
45 if (!isOpenBiosPresent())
return 0;
46 register int n
asm(
"t1") = 0x00;
47 __asm__
volatile(
"" :
"=r"(n) :
"r"(n));
48 uintptr_t* a0table = (uintptr_t*)0x200;
49 return ((
uint32_t(*)())(a0table[11] ^ 1))();
52static inline struct BuildId* getOpenBiosBuildId() {
53 if (!isOpenBiosPresent())
return 0;
54 register int n
asm(
"t1") = 0x01;
55 __asm__
volatile(
"" :
"=r"(n) :
"r"(n));
56 uintptr_t* a0table = (uintptr_t*)0x200;
57 return ((
struct BuildId * (*)())(a0table[11] ^ 1))();
uint32_t type
Definition openbios.h:35
uint32_t namesz
Definition openbios.h:33
uint32_t descsz
Definition openbios.h:34
uint8_t strings[]
Definition openbios.h:36
void uint32_t(classId, spec)