From owner-p4-projects Sun Sep 22 22:23:12 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6872737B404; Sun, 22 Sep 2002 22:23:09 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EEA4137B401 for ; Sun, 22 Sep 2002 22:23:08 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F35D43E3B for ; Sun, 22 Sep 2002 22:23:08 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from freefall.freebsd.org (perforce@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id g8N5N8Co024295 for ; Sun, 22 Sep 2002 22:23:08 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id g8N5N8D5024292 for perforce@freebsd.org; Sun, 22 Sep 2002 22:23:08 -0700 (PDT) Date: Sun, 22 Sep 2002 22:23:08 -0700 (PDT) Message-Id: <200209230523.g8N5N8D5024292@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 17963 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=17963 Change 17963 by peter@peter_overcee on 2002/09/22 22:22:41 x86-64 tss.h Affected files ... .. //depot/projects/hammer/sys/x86_64/include/tss.h#4 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/include/tss.h#4 (text+ko) ==== @@ -41,37 +41,33 @@ #define _MACHINE_TSS_H_ 1 /* - * Intel 386 Context Data Type + * x86-64 Context Data Type + * + * The alignment is pretty messed up here due to reuse of the original 32 bit + * fields. It might be worth trying to set the tss on a +4 byte offset to + * make the 64 bit fields aligned in practice. */ - -struct i386tss { - int tss_link; /* actually 16 bits: top 16 bits must be zero */ - int tss_esp0; /* kernel stack pointer privilege level 0 */ - int tss_ss0; /* actually 16 bits: top 16 bits must be zero */ - int tss_esp1; /* kernel stack pointer privilege level 1 */ - int tss_ss1; /* actually 16 bits: top 16 bits must be zero */ - int tss_esp2; /* kernel stack pointer privilege level 2 */ - int tss_ss2; /* actually 16 bits: top 16 bits must be zero */ - int tss_cr3; /* page table directory */ - int tss_eip; /* program counter */ - int tss_eflags; /* program status longword */ - int tss_eax; - int tss_ecx; - int tss_edx; - int tss_ebx; - int tss_esp; /* user stack pointer */ - int tss_ebp; /* user frame pointer */ - int tss_esi; - int tss_edi; - int tss_es; /* actually 16 bits: top 16 bits must be zero */ - int tss_cs; /* actually 16 bits: top 16 bits must be zero */ - int tss_ss; /* actually 16 bits: top 16 bits must be zero */ - int tss_ds; /* actually 16 bits: top 16 bits must be zero */ - int tss_fs; /* actually 16 bits: top 16 bits must be zero */ - int tss_gs; /* actually 16 bits: top 16 bits must be zero */ - int tss_ldt; /* actually 16 bits: top 16 bits must be zero */ - int tss_ioopt; /* options & io offset bitmap: currently zero */ - /* XXX unimplemented .. i/o permission bitmap */ +#pragma pack(1) +struct x86_64tss { + u_int32_t tss_rsvd0; + u_int64_t tss_rsp0; /* kernel stack pointer ring 0 */ + u_int64_t tss_rsp1; /* kernel stack pointer ring 1 */ + u_int64_t tss_rsp2; /* kernel stack pointer ring 2 */ + u_int32_t tss_rsvd1; + u_int32_t tss_rsvd2; + u_int32_t tss_rsvd3; + u_int64_t tss_ist1; /* Interrupt stack table 1 */ + u_int64_t tss_ist2; /* Interrupt stack table 2 */ + u_int64_t tss_ist3; /* Interrupt stack table 3 */ + u_int64_t tss_ist4; /* Interrupt stack table 4 */ + u_int64_t tss_ist5; /* Interrupt stack table 5 */ + u_int64_t tss_ist6; /* Interrupt stack table 6 */ + u_int64_t tss_ist7; /* Interrupt stack table 7 */ + u_int32_t tss_rsvd4; + u_int32_t tss_rsvd5; + u_int16_t tss_rsvd6; + u_int16_t tss_iobase; /* io bitmap offset */ }; +#pragma pack() #endif /* _MACHINE_TSS_H_ */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message