|
@@ -56,22 +56,6 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
|
|
#define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) )
|
|
#define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) )
|
|
#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1)>>12 )
|
|
#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1)>>12 )
|
|
|
|
|
|
-static inline unsigned long _get_base(char * addr)
|
|
|
|
-{
|
|
|
|
- unsigned long __base;
|
|
|
|
- __asm__("movb %3,%%dh\n\t"
|
|
|
|
- "movb %2,%%dl\n\t"
|
|
|
|
- "shll $16,%%edx\n\t"
|
|
|
|
- "movw %1,%%dx"
|
|
|
|
- :"=&d" (__base)
|
|
|
|
- :"m" (*((addr)+2)),
|
|
|
|
- "m" (*((addr)+4)),
|
|
|
|
- "m" (*((addr)+7)));
|
|
|
|
- return __base;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-#define get_base(ldt) _get_base( ((char *)&(ldt)) )
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Load a segment. Fall back on loading the zero
|
|
* Load a segment. Fall back on loading the zero
|
|
* segment if something goes wrong..
|
|
* segment if something goes wrong..
|