Author: rpaulo
Date: Tue Jul  6 16:56:27 2010
New Revision: 209731
URL: http://svn.freebsd.org/changeset/base/209731

Log:
  Introduce USD_{SET,GET}{BASE,LIMIT}. These help setting up the user
  segment descriptor hi and lo values. Idea from Solaris.
  
  Reviewed by:  kib

Modified:
  head/sys/amd64/include/segments.h

Modified: head/sys/amd64/include/segments.h
==============================================================================
--- head/sys/amd64/include/segments.h   Tue Jul  6 16:55:39 2010        
(r209730)
+++ head/sys/amd64/include/segments.h   Tue Jul  6 16:56:27 2010        
(r209731)
@@ -74,6 +74,13 @@ struct       user_segment_descriptor {
        u_int64_t sd_hibase:8;          /* segment base address  (msb) */
 } __packed;
 
+#define USD_GETBASE(_sd)       (((_sd)->sd_lobase) | (_sd)->sd_hibase << 24) 
+#define USD_SETBASE(_sd, _b)   (_sd)->sd_lobase = (_b);        \
+                               (_sd)->sd_hibase = ((_b) >> 24);
+#define USD_GETLIMIT(_sd)      (((_sd)->sd_lolimit) | (_sd)->sd_hilimit << 16)
+#define USD_SETLIMIT(_sd, _l)  (_sd)->sd_lolimit = (_l);       \
+                               (_sd)->sd_hilimit = ((_l) >> 16);
+
 /*
  * System segment descriptors (128 bit wide)
  */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to