diff options
author | kib <kib@FreeBSD.org> | 2009-04-01 12:31:04 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2009-04-01 12:31:04 +0000 |
commit | 12b844219e420459e8d30f9538d9bbb17d8d324e (patch) | |
tree | 4b10d25848747699a241d051b71a606d0e54a17c /sys/amd64/include/segments.h | |
parent | 9aa3b3f51fb7675634af206381ab2f8b8aaf52b7 (diff) | |
download | FreeBSD-src-12b844219e420459e8d30f9538d9bbb17d8d324e.zip FreeBSD-src-12b844219e420459e8d30f9538d9bbb17d8d324e.tar.gz |
Provide convenient definition of the union descriptor, similar to the
i386 one. Fully enumerate system segments and gate types.
In collaboration with: pho
Reviewed by: jhb
Diffstat (limited to 'sys/amd64/include/segments.h')
-rw-r--r-- | sys/amd64/include/segments.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/amd64/include/segments.h b/sys/amd64/include/segments.h index 1c83d1c..8ff3a0f 100644 --- a/sys/amd64/include/segments.h +++ b/sys/amd64/include/segments.h @@ -108,12 +108,29 @@ struct gate_descriptor { u_int64_t sd_xx1:32; } __packed; +/* + * Generic descriptor + */ +union descriptor { + struct user_segment_descriptor sd; + struct gate_descriptor gd; +}; + /* system segments and gate types */ #define SDT_SYSNULL 0 /* system null */ +#define SDT_SYS286TSS 1 /* system 286 TSS available */ #define SDT_SYSLDT 2 /* system 64 bit local descriptor table */ +#define SDT_SYS286BSY 3 /* system 286 TSS busy */ +#define SDT_SYS286CGT 4 /* system 286 call gate */ +#define SDT_SYSTASKGT 5 /* system task gate */ +#define SDT_SYS286IGT 6 /* system 286 interrupt gate */ +#define SDT_SYS286TGT 7 /* system 286 trap gate */ +#define SDT_SYSNULL2 8 /* system null again */ #define SDT_SYSTSS 9 /* system available 64 bit TSS */ +#define SDT_SYSNULL3 10 /* system null again */ #define SDT_SYSBSY 11 /* system busy 64 bit TSS */ #define SDT_SYSCGT 12 /* system 64 bit call gate */ +#define SDT_SYSNULL4 13 /* system null again */ #define SDT_SYSIGT 14 /* system 64 bit interrupt gate */ #define SDT_SYSTGT 15 /* system 64 bit trap gate */ |