mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-17 10:26:15 +00:00
Begin an invasion of i386-land by amd64.
Expose some of the amd64-specific sysarch functions to allow alternative implementations of the %fs/%gs code for TLS, threads, etc. USER_LDT does not exist on the amd64 kernel, so we have to implement things other ways.
This commit is contained in:
parent
1d9468ee37
commit
ffcb357bd1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=137289
@ -44,6 +44,12 @@
|
||||
/* xxxxx */
|
||||
#define I386_VM86 6
|
||||
|
||||
/* These four only exist when running an i386 binary on amd64 */
|
||||
#define _AMD64_GET_FSBASE 128
|
||||
#define _AMD64_SET_FSBASE 129
|
||||
#define _AMD64_GET_GSBASE 130
|
||||
#define _AMD64_SET_GSBASE 131
|
||||
|
||||
struct i386_ldt_args {
|
||||
unsigned int start;
|
||||
union descriptor *descs;
|
||||
@ -68,6 +74,11 @@ union descriptor;
|
||||
struct dbreg;
|
||||
|
||||
__BEGIN_DECLS
|
||||
/* These four only exist when running an i386 binary on amd64 */
|
||||
int _amd64_get_fsbase(void **);
|
||||
int _amd64_get_gsbase(void **);
|
||||
int _amd64_set_fsbase(void *);
|
||||
int _amd64_set_gsbase(void *);
|
||||
int i386_get_ldt(int, union descriptor *, int);
|
||||
int i386_set_ldt(int, union descriptor *, int);
|
||||
int i386_get_ioperm(unsigned int, unsigned int *, int *);
|
||||
|
Loading…
Reference in New Issue
Block a user