From owner-p4-projects Sun Sep 22 23:48: 5 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D70FD37B404; Sun, 22 Sep 2002 23:48:01 -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 8673D37B401 for ; Sun, 22 Sep 2002 23:48:01 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 29E4443E6A for ; Sun, 22 Sep 2002 23:48:01 -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 g8N6m1Co056739 for ; Sun, 22 Sep 2002 23:48:01 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id g8N6m0KY056730 for perforce@freebsd.org; Sun, 22 Sep 2002 23:48:00 -0700 (PDT) Date: Sun, 22 Sep 2002 23:48:00 -0700 (PDT) Message-Id: <200209230648.g8N6m0KY056730@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 17972 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=17972 Change 17972 by peter@peter_overcee on 2002/09/22 23:47:03 split up the memory and system descriptors. They have different sizes in 64 bit mode. Affected files ... .. //depot/projects/hammer/sys/x86_64/include/segments.h#6 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/include/segments.h#6 (text+ko) ==== @@ -42,7 +42,7 @@ #define _MACHINE_SEGMENTS_H_ /* - * 386 Segmentation Data Structures and definitions + * x86-64 Segmentation Data Structures and definitions * William F. Jolitz (william@ernie.berkeley.edu) 6/20/1989 */ @@ -60,7 +60,25 @@ #define GSEL(s,r) (((s)<<3) | r) /* a global selector */ /* - * Memory and System segment descriptors + * Memory segment descriptors (%cs, %ds etc for compatability apps. 32 bit wide) + */ +struct segment_descriptor { + unsigned sd_lolimit:16 ; /* segment extent (lsb) */ + unsigned sd_lobase:24 __attribute__ ((packed)); + /* segment base address (lsb) */ + unsigned sd_type:5 ; /* segment type */ + unsigned sd_dpl:2 ; /* segment descriptor priority level */ + unsigned sd_p:1 ; /* segment descriptor present */ + unsigned sd_hilimit:4 ; /* segment extent (msb) */ + unsigned sd_xx:1 ; /* unused */ + unsigned sd_l:2 ; /* long mode (cs only) */ + unsigned sd_def32:1 ; /* default 32 vs 16 bit size */ + unsigned sd_gran:1 ; /* limit granularity (byte/page units)*/ + unsigned sd_hibase:8 ; /* segment base address (msb) */ +}; + +/* + * System segment descriptors (64 bit wide) */ struct segment_descriptor { unsigned sd_lolimit:16 ; /* segment extent (lsb) */ @@ -75,10 +93,10 @@ unsigned sd_def32:1 ; /* default 32 vs 16 bit size */ unsigned sd_gran:1 ; /* limit granularity (byte/page units)*/ unsigned sd_hibase:8 ; /* segment base address (msb) */ -} ; +}; /* - * Gate descriptors (e.g. indirect descriptors) + * Gate descriptors (e.g. indirect descriptors, trap, interrupt etc. 64 bit) */ struct gate_descriptor { unsigned gd_looffset:16 ; /* gate offset (lsb) */ @@ -91,14 +109,6 @@ unsigned gd_hioffset:16 ; /* gate offset (msb) */ unsigned gd_hihioffset:32 ; /* gate offset (bits 32-63) */ unsigned gd_rsvd:32 ; /* reserved */ -} ; - -/* - * Generic descriptor - */ -union descriptor { - struct segment_descriptor sd; - struct gate_descriptor gd; }; /* system segments and gate types */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message