X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Futil.h;h=35d1a971381ba158b00f3d834437ffadafba8cc8;hb=b6cf6cc67513dfea518a76abecc6e8f0492131cd;hp=8a46036494309bfdb97ab586c461c57433dbf230;hpb=b49854e0980a030cc8338a7f4ee779ecde1aae38;p=dosdemo diff --git a/src/util.h b/src/util.h index 8a46036..35d1a97 100644 --- a/src/util.h +++ b/src/util.h @@ -168,14 +168,14 @@ static void INLINE memset16(void *dest, uint16_t val, int count) : "%eax", "%ebx", "%ecx", "%edx") #define debug_break() \ - asm volatile ("int $3") + asm volatile("int $3") #define halt() \ asm volatile("hlt") #endif #ifdef _MSC_VER -void __inline memset16(void *dest, uint16_t val, int count) +static void __inline memset16(void *dest, uint16_t val, int count) { __asm { cld @@ -221,6 +221,23 @@ void __inline memset16(void *dest, uint16_t val, int count) do { \ __asm { int 3 } \ } while(0) + +static unsigned int __inline get_cs(void) +{ + unsigned int res; + __asm { + xor eax, eax + mov ax, cs + mov [res], ax + } + return res; +} #endif +unsigned int get_cs(void); +#define get_cpl() ((int)(get_cs() & 7)) + +void get_msr(uint32_t msr, uint32_t *low, uint32_t *high); +void set_msr(uint32_t msr, uint32_t low, uint32_t high); + #endif /* UTIL_H_ */