]> git.pld-linux.org Git - packages/XFree86.git/blobdiff - XFree86-sparc_pci_domains.patch
This commit was manufactured by cvs2git to create branch 'XORG_7_1'.
[packages/XFree86.git] / XFree86-sparc_pci_domains.patch
diff --git a/XFree86-sparc_pci_domains.patch b/XFree86-sparc_pci_domains.patch
deleted file mode 100644 (file)
index 9a045c1..0000000
+++ /dev/null
@@ -1,1728 +0,0 @@
-This patch by David S. Miller.
-
---- XFree86-4.1.0/xc/config/cf/linux.cf.~1~    Sun Jun  3 19:44:40 2001
-+++ XFree86-4.1.0/xc/config/cf/linux.cf        Sun Jun  3 19:44:48 2001
-@@ -720,7 +720,7 @@
- # endif
- # define LinuxMachineDefines  -D__sparc__
- # define ServerOSDefines      XFree86ServerOSDefines -DDDXTIME -DPART_NET
--# define ServerExtraDefines   -DGCCUSESGAS XFree86ServerDefines
-+# define ServerExtraDefines   -DHAVE_DOMAINS -DGCCUSESGAS XFree86ServerDefines
- # define AsVISOption          -Av9a
- # ifdef Sparc64Architecture
- #  define AsOutputArchSize    64
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86.h.~1~     Sun Jun  3 19:44:40 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86.h Sun Jun  3 19:44:48 2001
-@@ -121,10 +121,18 @@
- resPtr xf86ReallocatePciResources(int entityIndex, resPtr pRes);
- resPtr xf86SetOperatingState(resList list, int entityIndex, int mask);
- void xf86EnterServerState(xf86State state);
--resRange xf86GetBlock(long type, memType size,
-+resRange xf86GetBlock(long type,
-+#ifdef HAVE_DOMAINS
-+                    int domain,
-+#endif
-+                    memType size,
-                     memType window_start, memType window_end,
-                     memType align_mask, resPtr avoid);
--resRange xf86GetSparse(long type,  memType fixed_bits,
-+resRange xf86GetSparse(long type,
-+#ifdef HAVE_DOMAINS
-+                     int domain,
-+#endif
-+                     memType fixed_bits,
-                      memType decode_mask, memType address_mask,
-                      resPtr avoid);
- memType xf86ChkConflict(resRange *rgp, int entityIndex);
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c.~1~  Sun Jun  3 19:44:40 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c      Sun Jun  3 19:44:48 2001
-@@ -393,6 +393,9 @@
-     resPtr res = Acc;
-     while (res) {
-+      /* NOTE: Assumes that entities live inside of a single
-+       * domain.
-+       */
-       if (res->entityIndex == entityIndex &&
-           (type & ResAccMask & res->res_type))
-       {
-@@ -895,6 +898,14 @@
-     memType val,tmp,prev;
-     int i;
-     
-+#ifdef HAVE_DOMAINS
-+    /* A resource cannot conflict with a range in a different
-+     * domain.
-+     */
-+    if (pRes->res_domain != range->domain)
-+      return 0;
-+#endif
-+
-     switch (pRes->res_type & ResExtMask) {
-     case ResBlock:
-       if (range->rBegin < pRes->block_end &&
-@@ -953,6 +964,14 @@
-     memType val, tmp, prev;
-     int i;
-     
-+#ifdef HAVE_DOMAINS
-+    /* A resource cannot conflict with a range in a different
-+     * domain.
-+     */
-+    if (pRes->res_domain != range->domain)
-+      return 0;
-+#endif
-+
-     switch (pRes->res_type & ResExtMask) {
-     case ResSparse:
-       tmp = pRes->sparse_mask & range->rMask;
-@@ -1020,7 +1039,7 @@
-  * depending on the types of the resource ranges and their locations
-  */
- static Bool
--needCheck(resPtr pRes, long type, int entityIndex, xf86State state)
-+needCheck(resPtr pRes, long type, int domain, int entityIndex, xf86State state)
- {
-     /* the same entity shouldn't conflict with itself */
-     ScrnInfoPtr pScrn;
-@@ -1031,6 +1050,14 @@
-     if (!(pRes->res_type & type & ResPhysMask)) 
-         return FALSE;
-+#ifdef HAVE_DOMAINS
-+    /* A resource cannot conflict with something in a different
-+     * domain.
-+     */
-+    if (pRes->res_domain != domain)
-+      return FALSE;
-+#endif
-+
-     /*
-      * Resources set by BIOS (ResBios) are allowed to conflict
-      * with resources marked (ResBios).
-@@ -1111,7 +1138,11 @@
-     memType ret;
-     
-     while(pRes) {
--      if (!needCheck(pRes,rgp->type, entityIndex ,state)) { 
-+      int domain = 0;
-+#ifdef HAVE_DOMAINS
-+      domain = rgp->domain;
-+#endif
-+      if (!needCheck(pRes,rgp->type,domain,entityIndex,state)) { 
-           pRes = pRes->next;                    
-           continue;                             
-       }
-@@ -1274,16 +1305,20 @@
-     while (1) {
-       while (list) {
-           if ((list->res_type & ResPhysMask) == type) {
-+              int domain = 0;
-+#ifdef HAVE_DOMAINS
-+              domain = list->res_domain;
-+#endif
-               switch (list->res_type & ResExtMask) {
-               case ResBlock:
--                  xf86ErrorFVerb(verb, "\t[%d] %d\t0x%08x - 0x%08x (0x%x)",
--                                 i, list->entityIndex, list->block_begin,
-+                  xf86ErrorFVerb(verb, "\t[%d] %d %x\t0x%08x - 0x%08x (0x%x)",
-+                                 i, list->entityIndex, domain, list->block_begin,
-                                  list->block_end,
-                                  list->block_end - list->block_begin + 1);
-                   break;
-               case ResSparse:
--                  xf86ErrorFVerb(verb, "\t[%d] %d\t0x%08x - 0x%08x ",
--                                 i, list->entityIndex,
-+                  xf86ErrorFVerb(verb, "\t[%d] %d %x\t0x%08x - 0x%08x ",
-+                                 i, list->entityIndex, domain,
-                                  list->sparse_base,list->sparse_mask);
-                   break;
-               default:
-@@ -1408,6 +1443,9 @@
-       if (pRes != target
-           && ((pRes->res_type & ResPhysMask) ==
-               (target->res_type & ResPhysMask))
-+#ifdef HAVE_DOMAINS
-+          && pRes->res_domain == target->res_domain
-+#endif
-           && pRes->block_begin <= target->block_end
-           && pRes->block_end >= target->block_begin) {
-           /* Possibly ignore estimated resources */
-@@ -1460,12 +1498,16 @@
- #define ALIGN(x,a) ((x) + a) &~(a)
- resRange 
--xf86GetBlock(long type, memType size,
-+xf86GetBlock(long type,
-+#ifdef HAVE_DOMAINS
-+       int domain,
-+#endif
-+       memType size,
-        memType window_start, memType window_end,
-        memType align_mask, resPtr avoid)
- {
-     memType min, max, tmp;
--    resRange r = {ResEnd,0,0};
-+    resRange r = _END;
-     resPtr res_range = ResRange;
-     
-     if (!size) return r;
-@@ -1478,7 +1520,11 @@
-     type = (type & ~(ResExtMask | ResBios | ResEstimated)) | ResBlock;
-     
-     while (res_range) {
--      if (type & res_range->res_type & ResPhysMask) {
-+      if ((type & res_range->res_type & ResPhysMask)
-+#ifdef HAVE_DOMAINS
-+          && (domain == res_range->res_domain)
-+#endif
-+              ) {
-           if (res_range->block_begin > window_start)
-               min = res_range->block_begin;
-           else
-@@ -1490,7 +1536,7 @@
-           min = ALIGN(min,align_mask);
-           /* do not produce an overflow! */
-           while (min < max && (max - min) >= (size - 1)) {
--              RANGE(r,min,min + size - 1,type);
-+              RANGE(r,min,min + size - 1,type,domain);
-               tmp = ChkConflict(&r,Acc,SETUP);
-               if (!tmp) {
-                   tmp = ChkConflict(&r,avoid,SETUP);
-@@ -1503,7 +1549,7 @@
-       }
-       res_range = res_range->next;
-     }
--    RANGE(r,0,0,ResEnd);
-+    RANGE(r,0,0,ResEnd,domain);
-     return r;
- }
-@@ -1557,10 +1603,14 @@
- }
- resRange
--xf86GetSparse(long type,  memType fixed_bits,
-+xf86GetSparse(long type,
-+#ifdef HAVE_DOMAINS
-+        int domain,
-+#endif
-+        memType fixed_bits,
-         memType decode_mask, memType address_mask, resPtr avoid)
- {
--    resRange r = {ResEnd,0,0};
-+    resRange r = _END;
-     memType new_mask;
-     memType mask1;
-     memType base;
-@@ -1602,7 +1652,7 @@
-      */
-     while (1) {
-       base = make_base(counter,new_mask) | fixed_bits;
--      RANGE(r,base,address_mask,type);
-+      RANGE(r,base,address_mask,type,domain);
-       conflict = ChkConflict(&r,Acc,SETUP);
-       if (!conflict) {
-           conflict = ChkConflict(&r,avoid,SETUP);
-@@ -1617,7 +1667,7 @@
-       if (counter > max_counter) break;
-     }
-     if (!new_mask && (new_mask == decode_mask)) {
--      RANGE(r,0,0,ResEnd);
-+      RANGE(r,0,0,ResEnd,domain);
-       return r;
-     }
-     /*
-@@ -1640,7 +1690,7 @@
-       counter1 = 0;
-       while (1) {
-           base = make_base(counter1,mask1);
--          RANGE(r,base,address_mask,type);
-+          RANGE(r,base,address_mask,type,domain);
-           conflict = ChkConflict(&r,Acc,SETUP);
-           if (!conflict) {
-               conflict = ChkConflict(&r,avoid,SETUP);
-@@ -1655,7 +1705,7 @@
-       counter ++;
-       if (counter > max_counter) break;
-     }
--    RANGE(r,0,0,ResEnd);
-+    RANGE(r,0,0,ResEnd,domain);
-     return r;
- }
-@@ -2686,6 +2736,9 @@
-     int i = 0;
-     
-     new.type = (range.type & ~ResExtMask) | ResSparse;
-+#ifdef HAVE_DOMAINS
-+    new.domain = range.domain;
-+#endif
-     while (1) {
-       if (val & 0x01) {
-@@ -2726,7 +2779,11 @@
-     
-     if (list1) {
-       list = list1;
--      if (range.type & list->res_type & ResPhysMask) {
-+      if ((range.type & list->res_type & ResPhysMask)
-+#ifdef HAVE_DOMAINS
-+          && (range.domain == list->res_domain)
-+#endif
-+              ) {
-           switch (range.type & ResExtMask) {
-           case ResBlock:
-               if ((list->res_type & ResExtMask) == ResBlock) {
-@@ -2736,21 +2793,21 @@
-                   else if (range.rBegin < list->block_begin
-                            && range.rEnd > list->block_end) {
-                       RANGE(range1, range.rBegin, list->block_begin - 1,
--                            range.type);
-+                            range.type, range.domain);
-                       RANGE(range2, list->block_end + 1, range.rEnd,
--                            range.type);
-+                            range.type, range.domain);
-                       return (x_isSubsetOf(range1,list->next,list2) &&
-                               x_isSubsetOf(range2,list->next,list2));
-                   }
-                   else if (range.rBegin >= list->block_begin
-                            && range.rBegin <= list->block_end) {
-                       RANGE(range1, list->block_end + 1, range.rEnd,
--                            range.type);
-+                            range.type, range.domain);
-                       return (x_isSubsetOf(range1,list->next,list2));
-                   } else if (range.rEnd >= list->block_begin
-                              && range.rEnd <= list->block_end) {
-                       RANGE(range1,range.rBegin, list->block_begin - 1,
--                            range.type);
-+                            range.type, range.domain);
-                       return (x_isSubsetOf(range1,list->next,list2));
-                   } 
-               }
-@@ -2791,7 +2848,7 @@
-                                 | ((~list->sparse_base & list->sparse_mask)
-                                    & ~range.rMask)) & range1.rMask,
-                                 ((range.rMask | list->sparse_mask) & ~test)
--                                | (1 << i), range.type);
-+                                | (1 << i), range.type, range.domain);
-                           return (x_isSubsetOf(range1,list->next,list2));
-                       }
-                   }
-@@ -2885,7 +2942,11 @@
-     resPtr new = NULL;
-     
-     while (list) {
--          if (Range.type & list->res_type & ResPhysMask) {
-+          if ((Range.type & list->res_type & ResPhysMask)
-+#ifdef HAVE_DOMAINS
-+              && (Range.domain == list->res_domain)
-+#endif
-+                  ) {
-               switch (Range.type & ResExtMask) {
-               case ResBlock:
-                   switch (list->res_type & ResExtMask) {
-@@ -2900,6 +2961,9 @@
-                           range.rEnd = list->block_end;
-                       if (range.rEnd > range.rBegin) {
-                           range.type = Range.type;
-+#ifdef HAVE_DOMAINS
-+                          range.domain = Range.domain;
-+#endif
-                           new = xf86AddResToList(new,&range,-1);
-                       }
-                       break;
-@@ -2917,7 +2981,7 @@
-                                 | (~range.rMask & list->sparse_base)
-                                 | (~list->sparse_mask & range.rBase),
-                                 range.rMask | list->sparse_mask,
--                                Range.type);
-+                                Range.type, Range.domain);
-                           new = xf86AddResToList(new,&range,-1);
-                       }
-                       break;
-@@ -2956,11 +3020,11 @@
-     switch (Range.type & ResExtMask) {
-     case ResBlock:
-       if (Range.rBegin > 0) {
--          RANGE(range, 0, Range.rBegin - 1, Range.type);
-+          RANGE(range, 0, Range.rBegin - 1, Range.type,Range.domain);
-           new = xf86AddResToList(new,&range,-1);
-       }
-       if (Range.rEnd < (memType)~0) {
--          RANGE(range,Range.rEnd + 1, (memType)~0, Range.type);
-+          RANGE(range,Range.rEnd + 1, (memType)~0, Range.type, Range.domain);
-           new = xf86AddResToList(new,&range,-1);
-       }
-       break;
-@@ -2968,7 +3032,7 @@
-       tmp = Range.rMask;
-       for (i = 0; i < sizeof(memType); i++) {
-           if (tmp & 0x1) {
--              RANGE(range,(~Range.rMask & range.rMask),(1 << i), Range.type);
-+              RANGE(range,(~Range.rMask & range.rMask),(1 << i), Range.type, Range.domain);
-               new = xf86AddResToList(new,&range,-1);
-           }
-       }
-@@ -2991,6 +3055,21 @@
-     }
-     return ret;
- }
-+
-+#ifdef HAVE_DOMAINS
-+resPtr
-+xf86ExtractDomainFromList(resPtr list, unsigned int domain)
-+{
-+    resPtr ret = NULL;
-+    
-+    while (list) {
-+      if (list->res_domain == domain)
-+          ret = xf86AddResToList(ret,&(list->val),list->entityIndex);
-+      list = list->next;
-+    }
-+    return ret;
-+}
-+#endif
- /*------------------------------------------------------------*/
- static void CheckGenericGA(void);
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h.~1~  Sun Jun  3 19:44:40 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h      Sun Jun  3 19:44:48 2001
-@@ -123,6 +123,9 @@
- Bool xf86IsSubsetOf(resRange range, resPtr list);
- Bool xf86IsListSubsetOf(resPtr list, resPtr BaseList);
- resPtr xf86ExtractTypeFromList(resPtr list, unsigned long type);
-+#ifdef HAVE_DOMAINS
-+resPtr xf86ExtractDomainFromList(resPtr list, unsigned int domain);
-+#endif
- resPtr findIntersect(resRange Range, resPtr list);
- resPtr xf86FindIntersect(resRange Range, resPtr list);
- void RemoveOverlaps(resPtr target, resPtr list, Bool pow2Alignment,
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86Resources.h~       Tue Jul 31 23:17:31 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86Resources.h        Tue Jul 31 23:17:33 2001
-@@ -6,78 +6,84 @@
- #include "xf86str.h"
--#define _END {ResEnd,0,0}
-+#ifdef HAVE_DOMAINS
-+#define DEFAULT_DOMAIN        0,
-+#else
-+#define DEFAULT_DOMAIN        /**/
-+#endif
-+
-+#define _END {ResEnd, DEFAULT_DOMAIN 0,0}
- #define _VGA_EXCLUSIVE \
--              {ResExcMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--              {ResExcMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--              {ResExcMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF},\
--              {ResExcIoBlock  | ResBios | ResBus,     0x03B0,     0x03BB},\
--              {ResExcIoBlock  | ResBios | ResBus,     0x03C0,     0x03DF}
-+              {ResExcMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+              {ResExcMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+              {ResExcMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF},\
-+              {ResExcIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03BB},\
-+              {ResExcIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03DF}
- #define _VGA_SHARED \
--              {ResShrMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--              {ResShrMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--              {ResShrMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF},\
--              {ResShrIoBlock  | ResBios | ResBus,     0x03B0,     0x03BB},\
--              {ResShrIoBlock  | ResBios | ResBus,     0x03C0,     0x03DF}
-+              {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+              {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+              {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF},\
-+              {ResShrIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03BB},\
-+              {ResShrIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03DF}
- #define _VGA_SHARED_MEM \
--              {ResShrMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--              {ResShrMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--              {ResShrMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF}
-+              {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+              {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+              {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF}
- #define _VGA_SHARED_IO \
--              {ResShrIoBlock  | ResBios | ResBus,     0x03B0,     0x03BB},\
--              {ResShrIoBlock  | ResBios | ResBus,     0x03C0,     0x03DF}
-+              {ResShrIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03BB},\
-+              {ResShrIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03DF}
- /*
-  * Exclusive unused VGA:  resources unneeded but cannot be disabled.
-  * Like old Millennium.
-  */
- #define _VGA_EXCLUSIVE_UNUSED \
--      {ResExcUusdMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--      {ResExcUusdMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--      {ResExcUusdMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF},\
--      {ResExcUusdIoBlock  | ResBios | ResBus,     0x03B0,     0x03BB},\
--      {ResExcUusdIoBlock  | ResBios | ResBus,     0x03C0,     0x03DF}
-+      {ResExcUusdMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+      {ResExcUusdMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+      {ResExcUusdMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF},\
-+      {ResExcUusdIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03BB},\
-+      {ResExcUusdIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03DF}
- /*
-  * Shared unused VGA:  resources unneeded but cannot be disabled
-  * independently.  This is used to determine if a device needs RAC.
-  */
- #define _VGA_SHARED_UNUSED \
--      {ResShrUusdMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--      {ResShrUusdMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--      {ResShrUusdMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF},\
--      {ResShrUusdIoBlock  | ResBios | ResBus,     0x03B0,     0x03BB},\
--      {ResShrUusdIoBlock  | ResBios | ResBus,     0x03C0,     0x03DF}
-+      {ResShrUusdMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+      {ResShrUusdMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+      {ResShrUusdMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF},\
-+      {ResShrUusdIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03BB},\
-+      {ResShrUusdIoBlock  | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03DF}
- /*
-  * Sparse versions of the above for those adapters that respond to all ISA
-  * aliases of VGA ports.
-  */
- #define _VGA_EXCLUSIVE_SPARSE \
--      {ResExcMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--      {ResExcMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--      {ResExcMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF},\
--      {ResExcIoSparse | ResBios | ResBus,     0x03B0,     0x03F8},\
--      {ResExcIoSparse | ResBios | ResBus,     0x03B8,     0x03FC},\
--      {ResExcIoSparse | ResBios | ResBus,     0x03C0,     0x03E0}
-+      {ResExcMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+      {ResExcMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+      {ResExcMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF},\
-+      {ResExcIoSparse | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03F8},\
-+      {ResExcIoSparse | ResBios | ResBus, DEFAULT_DOMAIN     0x03B8,     0x03FC},\
-+      {ResExcIoSparse | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03E0}
- #define _VGA_SHARED_SPARSE \
--      {ResShrMemBlock | ResBios | ResBus, 0x000A0000, 0x000AFFFF},\
--      {ResShrMemBlock | ResBios | ResBus, 0x000B0000, 0x000B7FFF},\
--      {ResShrMemBlock | ResBios | ResBus, 0x000B8000, 0x000BFFFF},\
--      {ResShrIoSparse | ResBios | ResBus,     0x03B0,     0x03F8},\
--      {ResShrIoSparse | ResBios | ResBus,     0x03B8,     0x03FC},\
--      {ResShrIoSparse | ResBios | ResBus,     0x03C0,     0x03E0}
-+      {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000A0000, 0x000AFFFF},\
-+      {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B0000, 0x000B7FFF},\
-+      {ResShrMemBlock | ResBios | ResBus, DEFAULT_DOMAIN 0x000B8000, 0x000BFFFF},\
-+      {ResShrIoSparse | ResBios | ResBus, DEFAULT_DOMAIN     0x03B0,     0x03F8},\
-+      {ResShrIoSparse | ResBios | ResBus, DEFAULT_DOMAIN     0x03B8,     0x03FC},\
-+      {ResShrIoSparse | ResBios | ResBus, DEFAULT_DOMAIN     0x03C0,     0x03E0}
- #define _8514_EXCLUSIVE \
--      {ResExcIoSparse | ResBios | ResBus, 0x02E8, 0x03F8}
-+      {ResExcIoSparse | ResBios | ResBus, DEFAULT_DOMAIN 0x02E8, 0x03F8}
- #define _8514_SHARED \
--      {ResShrIoSparse | ResBios | ResBus, 0x02E8, 0x03F8}
-+      {ResShrIoSparse | ResBios | ResBus, DEFAULT_DOMAIN 0x02E8, 0x03F8}
- /* predefined resources */
- extern resRange resVgaExclusive[];
-@@ -102,9 +108,9 @@
- #define RES_SHARED_8514     res8514Shared
- #define _PCI_AVOID_PC_STYLE \
--      {ResExcIoSparse | ResBus, 0x0100, 0x0300},\
--      {ResExcIoSparse | ResBus, 0x0200, 0x0200},\
--        {ResExcMemBlock | ResBus, 0xA0000,0xFFFFF}
-+      {ResExcIoSparse | ResBus, DEFAULT_DOMAIN 0x0100, 0x0300},\
-+      {ResExcIoSparse | ResBus, DEFAULT_DOMAIN 0x0200, 0x0200},\
-+        {ResExcMemBlock | ResBus, DEFAULT_DOMAIN 0xA0000,0xFFFFF}
- extern resRange PciAvoid[];
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c.~1~       Sun Jun  3 19:44:40 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c   Sun Jun  3 19:44:48 2001
-@@ -91,9 +91,9 @@
-                         ? pciBusAddrToHostAddr(tag,PCI_MEM_SIZE,size) \
-                         : pciBusAddrToHostAddr(tag,PCI_IO_SIZE,size))
- #define PCI_M_RANGE(range,tag,begin,end,type) \
--                            { RANGE(range,B2M(tag,begin),B2M(tag,end),type); }
-+        { RANGE(range,B2M(tag,begin),B2M(tag,end),type,xf86GetPciDomain(tag)); }
- #define PCI_I_RANGE(range,tag,begin,end,type) \
--                            { RANGE(range,B2I(tag,begin),B2I(tag,end),type); }
-+        { RANGE(range,B2I(tag,begin),B2I(tag,end),type,xf86GetPciDomain(tag)); }
- #define PCI_X_RANGE(range,tag,begin,end,type) \
- { if (type & ResMem)  PCI_M_RANGE(range,tag,begin,end,type); \
-                 else PCI_I_RANGE(range,tag,begin,end,type); } 
-@@ -1039,9 +1039,15 @@
-     PciBusPtr pbp = xf86PciBus, pbp1 = xf86PciBus;
-     pciConfigPtr pcp;
-     resPtr tmp;
-+#ifdef HAVE_DOMAINS
-+    int domain;
-+#endif
-     
-     if (!pvp) return FALSE;
-     tag = pciTag(pvp->bus,pvp->device,pvp->func);
-+#ifdef HAVE_DOMAINS
-+    domain = xf86GetPciDomain(tag);
-+#endif
-     pcp = pvp->thisCard;
-     type &= ResAccMask;
-@@ -1232,12 +1238,20 @@
- #endif
-     w_tmp = w;
-     while (w) {
--      if (type & w->res_type & ResPhysMask) {
-+      if ((type & w->res_type & ResPhysMask)
-+#ifdef HAVE_DOMAINS
-+          && (domain == w->res_domain)
-+#endif
-+              ) {
- #ifdef DEBUG
-           ErrorF("block_begin: 0x%lx block_end: 0x%lx\n",w->block_begin,
-                  w->block_end);
- #endif
--          range = xf86GetBlock(type,PCI_SIZE(type,tag,alignment + 1),
-+          range = xf86GetBlock(type,
-+#ifdef HAVE_DOMAINS
-+                               domain,
-+#endif
-+                               PCI_SIZE(type,tag,alignment + 1),
-                                w->block_begin, w->block_end,
-                                PCI_SIZE(type,tag,alignment),avoid);
-           if (range.type != ResEnd)
-@@ -1250,12 +1264,20 @@
-     if (range.type == ResEnd && w_2nd) {
-       w_tmp = w_2nd;
-       while (w_2nd) {
--          if (type & w_2nd->res_type & ResPhysMask) {
-+          if ((type & w_2nd->res_type & ResPhysMask)
-+#ifdef HAVE_DOMAINS
-+              && (domain == w_2nd->res_domain)
-+#endif
-+                  ) {
- #ifdef DEBUG
-           ErrorF("block_begin: 0x%lx block_end: 0x%lx\n",w_2nd->block_begin,
-                  w_2nd->block_end);
- #endif
--          range = xf86GetBlock(type,PCI_SIZE(type,tag,alignment + 1),
-+          range = xf86GetBlock(type,
-+#ifdef HAVE_DOMAINS
-+                               domain,
-+#endif
-+                               PCI_SIZE(type,tag,alignment + 1),
-                                w_2nd->block_begin, w_2nd->block_end,
-                                PCI_SIZE(type,tag,alignment),avoid);
-               if (range.type != ResEnd)
-@@ -1323,7 +1345,7 @@
- Bool
- xf86FixPciResource(int entityIndex, int prt, memType alignment,
--                  long type)
-+                 long type)
- {
-     pciVideoPtr pvp = xf86GetPciInfoForEntity(entityIndex);
-     return fixPciResource(prt, alignment, pvp, type);
-@@ -1481,6 +1503,9 @@
-        */
-        while (m) {
-            range = xf86GetBlock(ResExcMemBlock,
-+#ifdef HAVE_DOMAINS
-+                                xf86GetPciDomain(TAG(pvp)),
-+#endif
-                                 PCI_SIZE(ResMem, TAG(pvp), 1 << biosSize),
-                                 m->block_begin, m->block_end,
-                                 PCI_SIZE(ResMem, TAG(pvp), alignment), 
-@@ -1730,10 +1755,9 @@
-     PciBusPtr *pnPciBus = &PciBusBase;
-     int MaxBus = 0;
-     int i;
-+    int domain = 0;
-     memType base, limit;
--    resPtr pciBusAccWindows = xf86PciBusAccWindowsFromOS();
--
-     if (pciInfo == NULL) return NULL;
-     
-     /* Add each PCI-PCI bridge */
-@@ -1856,13 +1880,25 @@
-               PciBus->secondary = -1; /* to be set below */
-               PciBus->subclass = sub_class;
-               PciBus->brcontrol = PCI_PCI_BRIDGE_VGA_EN;
-+#ifdef HAVE_DOMAINS
-+              domain = xf86GetPciDomain(pcrp->tag);
-+#endif
-+              /* XXX A memory leak has returned here... -DaveM */
-               PciBus->preferred_io = xf86ExtractTypeFromList(
--                  pciBusAccWindows,ResIo);
-+                  xf86PciBusAccWindowsFromOS(domain),ResIo);
-               PciBus->preferred_mem = xf86ExtractTypeFromList(
--                  pciBusAccWindows,ResMem);
-+                  xf86PciBusAccWindowsFromOS(domain),ResMem);
-               PciBus->preferred_pmem = xf86ExtractTypeFromList(
--                  pciBusAccWindows,ResMem);
-+                  xf86PciBusAccWindowsFromOS(domain),ResMem);
-               xf86MsgVerb(X_INFO,3,"Host-to-PCI bridge:\n");
-+#ifdef DEBUG
-+              xf86MsgVerb(X_INFO,3,"Preferred I/O:\n");
-+              xf86PrintResList(3,PciBus->preferred_io);
-+              xf86MsgVerb(X_INFO,3,"Preferred MEM:\n");
-+              xf86PrintResList(3,PciBus->preferred_mem);
-+              xf86MsgVerb(X_INFO,3,"Preferred Prefetchable MEM:\n");
-+              xf86PrintResList(3,PciBus->preferred_pmem);
-+#endif
-               break;
-           default:
-               break;
-@@ -1892,12 +1928,23 @@
-               PciBus->primary = -1;
-               PciBus->secondary = i;
-               PciBus->subclass = PCI_SUBCLASS_BRIDGE_HOST;
-+
-+#ifdef HAVE_DOMAINS
-+              /* Find a device on this bus. */
-+              for (pcrpp = pciInfo, pcrp = *pcrpp; pcrp; pcrp = *(++pcrpp)) {
-+                      if (pcrp->busnum == i)
-+                              break;
-+              }
-+
-+              if (pcrp) domain = xf86GetPciDomain(pcrp->tag);
-+#endif
-+              /* XXX A memory leak has returned here... -DaveM */
-               PciBus->preferred_io = xf86ExtractTypeFromList(
--                  pciBusAccWindows,ResIo);
-+                  xf86PciBusAccWindowsFromOS(domain),ResIo);
-               PciBus->preferred_mem = xf86ExtractTypeFromList(
--                  pciBusAccWindows,ResMem);
-+                  xf86PciBusAccWindowsFromOS(domain),ResMem);
-               PciBus->preferred_pmem = xf86ExtractTypeFromList(
--                  pciBusAccWindows,ResMem);
-+                  xf86PciBusAccWindowsFromOS(domain),ResMem);
-               xf86MsgVerb(X_INFO,3,"Host-to-PCI bridge:\n");
-           }
-       }
-@@ -1928,7 +1975,6 @@
-       printBridgeInfo(PciBus);
-     }
-     
--    xf86FreeResList(pciBusAccWindows);
-     return PciBusBase;
-     
- }
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86str.h.~1~  Sun Jun  3 19:44:40 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/common/xf86str.h      Sun Jun  3 19:44:48 2001
-@@ -593,15 +593,27 @@
- typedef struct {
-     long type;     /* shared, exclusive, unused etc. */
-+#ifdef HAVE_DOMAINS
-+    unsigned int domain;
-+#endif
-     memType a;
-     memType b;
- } resRange, *resList;
--#define RANGE(r,u,v,t) {\
-+#ifdef HAVE_DOMAINS
-+#define RANGE(r,u,v,t,d) {\
-                        (r).a = (u);\
-                        (r).b = (v);\
-                        (r).type = t;\
-+                       (r).domain = d;\
-                        }
-+#else
-+#define RANGE(r,u,v,t,d) {\
-+                       (r).a = (u);\
-+                       (r).b = (v);\
-+                       (r).type = t;\
-+                       }
-+#endif
- #define rBase a
- #define rMask b
-@@ -621,6 +633,9 @@
- #define block_begin   val.rBegin
- #define block_end     val.rEnd
- #define res_type      val.type
-+#ifdef HAVE_DOMAINS
-+#define res_domain    val.domain
-+#endif
- typedef struct {
-     int numChipset;
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile.~1~     Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile Sun Jun  3 19:44:48 2001
-@@ -87,12 +87,12 @@
- # ifndef ATIAvoidCPIO
- #  define ATIAvoidCPIO NO
- # endif
--#elif defined(SparcArchitecture) || 1
-+#elif 1
- # undef ATIAvoidCPIO    /* Clobber any previous setting */
- # define ATIAvoidCPIO YES
- #endif
--#if defined(PpcArchitecture)
-+#if defined(PpcArchitecture) || defined(SparcArchitecture)
- # undef ATIAvoidNonPCI
- # define ATIAvoidNonPCI YES
- #elif !defined(ATIAvoidNonPCI)
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c.~1~   Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c       Sun Jun  3 19:44:48 2001
-@@ -27,6 +27,7 @@
- #include "aticursor.h"
- #include "atioption.h"
- #include "atistruct.h"
-+#include "atichip.h"
- /*
-  * Non-publicised XF86Config options.
-@@ -122,6 +123,11 @@
-     }
-     ReferenceClock = ((double)157500000.0) / ((double)11.0);
-+#ifdef __sparc__
-+    if (pATI->Chip == ATI_CHIP_264XL)
-+          ReferenceClock = ((double)315000000.0) / ((double)11.0);
-+    CSync = TRUE;
-+#endif
- #ifndef AVOID_CPIO
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c.~1~   Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c       Sun Jun  3 19:44:48 2001
-@@ -1602,6 +1602,24 @@
-          */
-         switch (iDWord)
-         {
-+#if X_BYTE_ORDER == X_BIG_ENDIAN
-+          case  0:  xf86WriteMmio32Be(pDst +  0, 0, *(pSrc +  0));
-+          case  1:  xf86WriteMmio32Be(pDst +  1, 0, *(pSrc +  1));
-+          case  2:  xf86WriteMmio32Be(pDst +  2, 0, *(pSrc +  2));
-+          case  3:  xf86WriteMmio32Be(pDst +  3, 0, *(pSrc +  3));
-+          case  4:  xf86WriteMmio32Be(pDst +  4, 0, *(pSrc +  4));
-+          case  5:  xf86WriteMmio32Be(pDst +  5, 0, *(pSrc +  5));
-+          case  6:  xf86WriteMmio32Be(pDst +  6, 0, *(pSrc +  6));
-+          case  7:  xf86WriteMmio32Be(pDst +  7, 0, *(pSrc +  7));
-+          case  8:  xf86WriteMmio32Be(pDst +  8, 0, *(pSrc +  8));
-+          case  9:  xf86WriteMmio32Be(pDst +  9, 0, *(pSrc +  9));
-+          case 10:  xf86WriteMmio32Be(pDst + 10, 0, *(pSrc + 10));
-+          case 11:  xf86WriteMmio32Be(pDst + 11, 0, *(pSrc + 11));
-+          case 12:  xf86WriteMmio32Be(pDst + 12, 0, *(pSrc + 12));
-+          case 13:  xf86WriteMmio32Be(pDst + 13, 0, *(pSrc + 13));
-+          case 14:  xf86WriteMmio32Be(pDst + 14, 0, *(pSrc + 14));
-+          case 15:  xf86WriteMmio32Be(pDst + 15, 0, *(pSrc + 15));
-+#else
-             case  0:  MMIO_OUT32(pDst +  0, 0, *(pSrc +  0));
-             case  1:  MMIO_OUT32(pDst +  1, 0, *(pSrc +  1));
-             case  2:  MMIO_OUT32(pDst +  2, 0, *(pSrc +  2));
-@@ -1618,6 +1636,7 @@
-             case 13:  MMIO_OUT32(pDst + 13, 0, *(pSrc + 13));
-             case 14:  MMIO_OUT32(pDst + 14, 0, *(pSrc + 14));
-             case 15:  MMIO_OUT32(pDst + 15, 0, *(pSrc + 15));
-+#endif
-             default:    /* Muffle compiler */
-                 break;
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c.~1~      Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c  Sun Jun  3 19:44:48 2001
-@@ -17,22 +17,34 @@
- resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
-+#define MIN_SYSTEM_DOMAIN     0
-+#ifdef HAVE_DOMAINS
-+#define MAX_SYSTEM_DOMAIN     255
-+#else
-+#define MAX_SYSTEM_DOMAIN     0
-+#endif
-+#define ISA_SYSTEM_DOMAIN     0
-+
- resPtr
- xf86BusAccWindowsFromOS(void)
- {
-     resPtr ret = NULL;
-     resRange range;
-+    int domain;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-+    for (domain = MIN_SYSTEM_DOMAIN; domain <= MAX_SYSTEM_DOMAIN; domain++) {
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+    }
--    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
- resPtr
--xf86PciBusAccWindowsFromOS(void)
-+xf86PciBusAccWindowsFromOS(int domain)
- {
-     resPtr ret = NULL;
-     resRange range;
-@@ -44,10 +56,10 @@
-      * region 0x40000000-0xbfffffff for DMA but this only matters if
-      * the bios screws up the pci region mappings.
-      */
--    RANGE(range, 0x80000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x80000000, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
-@@ -58,10 +70,10 @@
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
-@@ -70,6 +82,14 @@
- xf86AccResFromOS(resPtr ret)
- {
-     resRange range;
-+#ifdef HAVE_DOMAINS
-+    int domain = MIN_SYSTEM_DOMAIN;
-+#endif
-+
-+#ifdef HAVE_DOMAINS
-+    if (ret != NULL)
-+      domain = ret->res_domain;
-+#endif
-     /*
-      * Fallback is to claim the following areas:
-@@ -77,7 +97,7 @@
-      * 0x000c0000 - 0x000effff  location of VGA and other extensions ROMS
-      */
--    RANGE(range, 0x000c0000, 0x000effff, ResExcMemBlock);
-+    RANGE(range, 0x000c0000, 0x000effff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /*
-@@ -85,20 +105,20 @@
-      * along with their sparse I/O aliases, but that's too imprecise.  Instead
-      * claim a bare minimum here.
-      */
--    RANGE(range, 0x00000000, 0x000000ff, ResExcIoBlock); /* For mainboard */
-+    RANGE(range, 0x00000000, 0x000000ff, ResExcIoBlock, domain); /* For mainboard */
-     ret = xf86AddResToList(ret, &range, -1);
-     /*
-      * At minimum, the top and bottom resources must be claimed, so that
-      * resources that are (or appear to be) unallocated can be relocated.
-      */
--    RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--/*  RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
-+/*  RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1); */
--    RANGE(range, 0xffffffff, 0xffffffff, ResExcIoBlock);
-+    RANGE(range, 0xffffffff, 0xffffffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /* XXX add others */
-@@ -109,30 +129,38 @@
- resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
-+#define MIN_SYSTEM_DOMAIN     0
-+#define MAX_SYSTEM_DOMAIN     0
-+#define ISA_SYSTEM_DOMAIN     0
-+
- resPtr
- xf86BusAccWindowsFromOS(void)
- {
-     resPtr ret = NULL;
-     resRange range;
-+    int domain;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-+    for (domain = MIN_SYSTEM_DOMAIN; domain <= MAX_SYSTEM_DOMAIN; domain++) {
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+
-+      RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+    }
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
- resPtr
--xf86PciBusAccWindowsFromOS(void)
-+xf86PciBusAccWindowsFromOS(int domain)
- {
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile.~1~  Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile      Sun Jun  3 19:44:48 2001
-@@ -14,8 +14,16 @@
- PCIDRVRSRC = axpPci.c
- PCIDRVROBJ = axpPci.o
--#elif (defined(LinuxArchitecture) || defined(SunArchitecture)) && \
--      defined(SparcArchitecture)
-+#elif defined(LinuxArchitecture) && defined(SparcArchitecture)
-+
-+XCOMM Sparc SBUS driver, generic linux PCI driver
-+
-+PCIDRVRSRC = linuxPci.c
-+PCIDRVROBJ = linuxPci.o
-+SBUSDRVSRC = Sbus.c
-+SBUSDRVOBJ = Sbus.o
-+
-+#elif defined(SunArchitecture) && defined(SparcArchitecture)
- XCOMM Sparc PCI driver
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c.~1~      Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c  Sun Jun  3 19:44:48 2001
-@@ -1015,6 +1015,13 @@
- #if defined(INCLUDE_XF86_MAP_PCI_MEM)
-+#ifdef HAVE_DOMAINS
-+int xf86GetPciDomain(PCITAG Tag)
-+{
-+      return 0;
-+}
-+#endif
-+
- pointer
- xf86MapPciMem(int ScreenNum, int Flags, PCITAG Tag, ADDRESS Base,
-               unsigned long Size)
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h.~1~      Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h  Sun Jun  3 19:44:48 2001
-@@ -152,9 +152,11 @@
- # if !defined(PowerMAX_OS)
- #  define INCLUDE_XF86_MAP_PCI_MEM
- # endif
--#elif defined(__sparc__) && (defined(linux) || defined(sun))
-+#elif defined(__sparc__) && defined(sun)
- # define ARCH_PCI_INIT sparcPciInit
- # define INCLUDE_XF86_MAP_PCI_MEM
-+#elif defined(__sparc__) && defined(linux)
-+# define ARCH_PCI_INIT linuxPciInit
- #elif defined(__alpha__) && defined(linux)
- # define ARCH_PCI_INIT axpPciInit
- # define INCLUDE_XF86_MAP_PCI_MEM
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c.~1~ Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c     Sun Jun  3 19:44:48 2001
-@@ -88,6 +88,13 @@
- #define PCI_CPU(val)  (val)
- #endif
-+/* Ioctls for /proc/bus/pci/X/Y nodes. */
-+#define PCIIOC_BASE           ('P' << 24 | 'C' << 16 | 'I' << 8)
-+#define PCIIOC_CONTROLLER     (PCIIOC_BASE | 0x00)    /* Get controller for PCI device. */
-+#define PCIIOC_MMAP_IS_IO     (PCIIOC_BASE | 0x01)    /* Set mmap state to I/O space. */
-+#define PCIIOC_MMAP_IS_MEM    (PCIIOC_BASE | 0x02)    /* Set mmap state to MEM space. */
-+#define PCIIOC_WRITE_COMBINE  (PCIIOC_BASE | 0x03)    /* Enable/disable write-combining. */
-+
- void  
- linuxPciInit()
- {
-@@ -167,3 +174,129 @@
-               write(fd,&val,4);
-       }
- }
-+
-+#ifndef INCLUDE_XF86_MAP_PCI_MEM
-+
-+#ifdef HAVE_DOMAINS
-+int xf86GetPciDomain(PCITAG Tag)
-+{
-+      int fd;
-+
-+      if (-1 != (fd = linuxPciOpenFile(Tag))) {
-+              int err = ioctl(fd, PCIIOC_CONTROLLER, 0);
-+
-+              if (err < 0)
-+                      return 0;
-+
-+              return err;
-+      }       
-+
-+      return 0;
-+}
-+#endif
-+
-+static pointer
-+xf86MapPciGeneric(int ScreenNum, int Flags, PCITAG Tag, ADDRESS Base,
-+                unsigned long Size, int io_space)
-+{
-+      int fd;
-+
-+      xf86InitVidMem();
-+
-+      if (-1 != (fd = linuxPciOpenFile(Tag))) {
-+              ADDRESS realBase, alignOff;
-+              pointer p;
-+              CARD32 save = 0;
-+              int err, mapflags;
-+
-+              if (io_space)
-+                      err = ioctl(fd, PCIIOC_MMAP_IS_IO, 0);
-+              else
-+                      err = ioctl(fd, PCIIOC_MMAP_IS_MEM, 0);
-+
-+              if (err < 0)
-+                      goto fail;
-+
-+              if (Flags & VIDMEM_READSIDEEFFECT) {
-+                      save = pciReadLong(Tag, PCI_CMD_STAT_REG);
-+                      pciWriteLong(Tag, PCI_CMD_STAT_REG,
-+                                   save & ~PCI_CMD_MEM_ENABLE);
-+              }
-+
-+              mapflags = MAP_SHARED;
-+#if defined(__ia64__)
-+#ifndef MAP_WRITECOMBINED
-+#define MAP_WRITECOMBINED 0x00010000
-+#endif
-+#ifndef MAP_NONCACHED
-+#define MAP_NONCACHED 0x00020000
-+#endif
-+              if (Flags & VIDMEM_FRAMEBUFFER) 
-+                      mapflags |= MAP_WRITECOMBINED; 
-+              else
-+                      mapflags |= MAP_NONCACHED; 
-+#else /* !(__ia64__) */
-+              err = ioctl(fd, PCIIOC_WRITE_COMBINE,
-+                          (Flags & VIDMEM_FRAMEBUFFER) ? 1 : 0);
-+              if (err < 0)
-+                      goto fail_restore_cmd_stat;
-+#endif
-+
-+              realBase = Base & ~(getpagesize() - 1);
-+              alignOff = Base - realBase;
-+
-+              p = mmap(NULL, Size + alignOff, PROT_READ | PROT_WRITE,
-+                       mapflags, fd, realBase);
-+
-+              if (!p || p == (pointer) -1) {
-+                      FatalError("xf86MapPciMem: Could not mmap PCI memory "
-+                                 "[base=0x%x,size=%x] (%s)\n",
-+                                 Base, Size, strerror(errno));
-+                      goto fail_restore_cmd_stat;
-+              }
-+
-+              if (Flags & VIDMEM_READSIDEEFFECT) {
-+                      xf86MapReadSideEffects(ScreenNum, Flags, p, Size);
-+                      pciWriteLong(Tag, PCI_CMD_STAT_REG, save);
-+              }
-+
-+              xf86MakeNewMapping(ScreenNum, Flags, Base, Size, p);
-+
-+              return (pointer) ((char *)p + alignOff);
-+
-+      fail_restore_cmd_stat:
-+              if (Flags & VIDMEM_READSIDEEFFECT)
-+                      pciWriteLong(Tag, PCI_CMD_STAT_REG, save);
-+
-+              return NULL;
-+      }
-+
-+fail:
-+      return NULL;
-+}
-+
-+pointer
-+xf86MapPciMem(int ScreenNum, int Flags, PCITAG Tag, ADDRESS Base,
-+            unsigned long Size)
-+{
-+      return xf86MapPciGeneric(ScreenNum, Flags, Tag,
-+                               Base, Size, 0);
-+}
-+
-+pointer
-+xf86MapPciIo(int ScreenNum, int Flags, PCITAG Tag, ADDRESS Base,
-+           unsigned long Size)
-+{
-+      return xf86MapPciGeneric(ScreenNum, Flags, Tag,
-+                               Base, Size, 1);
-+}
-+
-+int
-+xf86ReadPciBIOS(unsigned long Offset, PCITAG Tag, int basereg,
-+              unsigned char *Buf, int Len)
-+{
-+      xf86Msg(X_WARNING, "xf86ReadPciBIOS: Unsupported on this platform.\n");
-+      return -1;
-+}
-+
-+#endif /* !(INCLUDE_XF86_MAP_PCI_MEM) */
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h.~1~  Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h      Sun Jun  3 19:44:48 2001
-@@ -647,6 +647,9 @@
-                               ADDRESS Base, unsigned long Size);
- int           xf86ReadPciBIOS(unsigned long Offset, PCITAG Tag, int basereg,
-                               unsigned char *Buf, int Len);
-+#ifdef HAVE_DOMAINS
-+int         xf86GetPciDomain(PCITAG Tag);
-+#endif
- pciConfigPtr *xf86scanpci(int flags);
- /* Old sytle PCI access functions (for compatibility) */
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c.~1~    Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c        Sun Jun  3 19:44:48 2001
-@@ -15,22 +15,33 @@
- #ifdef __alpha__
- resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
-+#define MIN_SYSTEM_DOMAIN     0
-+#ifdef HAVE_DOMAINS
-+#define MAX_SYSTEM_DOMAIN     255
-+#else
-+#define MAX_SYSTEM_DOMAIN     0
-+#endif
-+#define ISA_SYSTEM_DOMAIN     0
-+
- resPtr
- xf86BusAccWindowsFromOS(void)
- {
-     resPtr ret = NULL;
-     resRange range;
-+    int domain;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-+    for (domain = MIN_SYSTEM_DOMAIN; domain <= MAX_SYSTEM_DOMAIN; domain++) {
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+    }
-     return ret;
- }
- resPtr
--xf86PciBusAccWindowsFromOS(void)
-+xf86PciBusAccWindowsFromOS(int domain)
- {
-     resPtr ret = NULL;
-     resRange range;
-@@ -39,75 +50,75 @@
-      * sparse address space are an image of the ISA bus range
-      */
-     if (_bus_base_sparse()) {
--      RANGE(range, 0x00000000, 0x07ffffff, ResExcMemBlock);
-+      RANGE(range, 0x00000000, 0x07ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x09000000, 0x0fffffff, ResExcMemBlock);
-+      RANGE(range, 0x09000000, 0x0fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x11000000, 0x17ffffff, ResExcMemBlock);
-+      RANGE(range, 0x11000000, 0x17ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x19000000, 0x1fffffff, ResExcMemBlock);
-+      RANGE(range, 0x19000000, 0x1fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x21000000, 0x27ffffff, ResExcMemBlock);
-+      RANGE(range, 0x21000000, 0x27ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x29000000, 0x2fffffff, ResExcMemBlock);
-+      RANGE(range, 0x29000000, 0x2fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x31000000, 0x37ffffff, ResExcMemBlock);
-+      RANGE(range, 0x31000000, 0x37ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x39000000, 0x3fffffff, ResExcMemBlock);
-+      RANGE(range, 0x39000000, 0x3fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x41000000, 0x47ffffff, ResExcMemBlock);
-+      RANGE(range, 0x41000000, 0x47ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x49000000, 0x4fffffff, ResExcMemBlock);
-+      RANGE(range, 0x49000000, 0x4fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x51000000, 0x57ffffff, ResExcMemBlock);
-+      RANGE(range, 0x51000000, 0x57ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x59000000, 0x5fffffff, ResExcMemBlock);
-+      RANGE(range, 0x59000000, 0x5fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x61000000, 0x67ffffff, ResExcMemBlock);
-+      RANGE(range, 0x61000000, 0x67ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x69000000, 0x6fffffff, ResExcMemBlock);
-+      RANGE(range, 0x69000000, 0x6fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x71000000, 0x77ffffff, ResExcMemBlock);
-+      RANGE(range, 0x71000000, 0x77ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x79000000, 0x7fffffff, ResExcMemBlock);
-+      RANGE(range, 0x79000000, 0x7fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x81000000, 0x87ffffff, ResExcMemBlock);
-+      RANGE(range, 0x81000000, 0x87ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x89000000, 0x8fffffff, ResExcMemBlock);
-+      RANGE(range, 0x89000000, 0x8fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x91000000, 0x97ffffff, ResExcMemBlock);
-+      RANGE(range, 0x91000000, 0x97ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0x99000000, 0x9fffffff, ResExcMemBlock);
-+      RANGE(range, 0x99000000, 0x9fffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xa1000000, 0xa7ffffff, ResExcMemBlock);
-+      RANGE(range, 0xa1000000, 0xa7ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xa9000000, 0xafffffff, ResExcMemBlock);
-+      RANGE(range, 0xa9000000, 0xafffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xb1000000, 0xb7ffffff, ResExcMemBlock);
-+      RANGE(range, 0xb1000000, 0xb7ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xb9000000, 0xbfffffff, ResExcMemBlock);
-+      RANGE(range, 0xb9000000, 0xbfffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xc1000000, 0xc7ffffff, ResExcMemBlock);
-+      RANGE(range, 0xc1000000, 0xc7ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xc9000000, 0xcfffffff, ResExcMemBlock);
-+      RANGE(range, 0xc9000000, 0xcfffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xd1000000, 0xd7ffffff, ResExcMemBlock);
-+      RANGE(range, 0xd1000000, 0xd7ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xd9000000, 0xdfffffff, ResExcMemBlock);
-+      RANGE(range, 0xd9000000, 0xdfffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xe1000000, 0xe7ffffff, ResExcMemBlock);
-+      RANGE(range, 0xe1000000, 0xe7ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xe9000000, 0xefffffff, ResExcMemBlock);
-+      RANGE(range, 0xe9000000, 0xefffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xf1000000, 0xf7ffffff, ResExcMemBlock);
-+      RANGE(range, 0xf1000000, 0xf7ffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
--      RANGE(range, 0xf9000000, 0xffffffff, ResExcMemBlock);
-+      RANGE(range, 0xf9000000, 0xffffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
-     } else {
--      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-       ret = xf86AddResToList(ret, &range, -1);
-     }
--    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
-@@ -118,10 +129,10 @@
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcIoBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
-@@ -130,6 +141,14 @@
- xf86AccResFromOS(resPtr ret)
- {
-     resRange range;
-+#ifdef HAVE_DOMAINS
-+    int domain = MIN_SYSTEM_DOMAIN;
-+#endif
-+
-+#ifdef HAVE_DOMAINS
-+    if (ret != NULL)
-+      domain = ret->res_domain;
-+#endif
-     /*
-      * Fallback is to claim the following areas:
-@@ -137,7 +156,7 @@
-      * 0x000c0000 - 0x000effff  location of VGA and other extensions ROMS
-      */
--    RANGE(range, 0x000c0000, 0x000effff, ResExcMemBlock);
-+    RANGE(range, 0x000c0000, 0x000effff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /*
-@@ -145,20 +164,20 @@
-      * along with their sparse I/O aliases, but that's too imprecise.  Instead
-      * claim a bare minimum here.
-      */
--    RANGE(range, 0x00000000, 0x000000ff, ResExcIoBlock); /* For mainboard */
-+    RANGE(range, 0x00000000, 0x000000ff, ResExcIoBlock, domain); /* For mainboard */
-     ret = xf86AddResToList(ret, &range, -1);
-     /*
-      * At minimum, the top and bottom resources must be claimed, so that
-      * resources that are (or appear to be) unallocated can be relocated.
-      */
--    RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--/*  RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
-+/*  RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1); */
--    RANGE(range, 0xffffffff, 0xffffffff, ResExcIoBlock);
-+    RANGE(range, 0xffffffff, 0xffffffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /* XXX add others */
-@@ -172,9 +191,18 @@
-   */
-   
- #ifdef __sparc__
-+#ifndef HAVE_DOMAINS
-+#error This platform cannot operate correctly without HAVE_DOMAINS defined
-+#endif
- resRange PciAvoid[] = {_END};
-+#define MIN_SYSTEM_DOMAIN     0
-+#define MAX_SYSTEM_DOMAIN     255
-+#define ISA_SYSTEM_DOMAIN     0
- #else
- resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
-+#define MIN_SYSTEM_DOMAIN     0
-+#define MAX_SYSTEM_DOMAIN     0
-+#define ISA_SYSTEM_DOMAIN     0
- #endif
- resPtr
-@@ -182,32 +210,36 @@
- {
-     resPtr ret = NULL;
-     resRange range;
-+    int domain;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-+    for (domain = MIN_SYSTEM_DOMAIN; domain <= MAX_SYSTEM_DOMAIN; domain++) {
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
- #ifdef __sparc__
--    RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
-+      RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock, domain);
- #else
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
-+      RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, domain);
- #endif
--    ret = xf86AddResToList(ret, &range, -1);
-+      ret = xf86AddResToList(ret, &range, -1);
-+    }
-+
-     return ret;
- }
- resPtr
--xf86PciBusAccWindowsFromOS(void)
-+xf86PciBusAccWindowsFromOS(int domain)
- {
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
- #ifdef __sparc__
--    RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock, domain);
- #else
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, domain);
- #endif
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
-@@ -219,13 +251,13 @@
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
- #ifdef __sparc__
--    RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock, ISA_SYSTEM_DOMAIN);
- #else
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, ISA_SYSTEM_DOMAIN);
- #endif
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
-@@ -235,21 +267,29 @@
- xf86AccResFromOS(resPtr ret)
- {
-     resRange range;
-+#ifdef HAVE_DOMAINS
-+    int domain = MIN_SYSTEM_DOMAIN;
-+#endif
-+
-+#ifdef HAVE_DOMAINS
-+    if (ret != NULL)
-+      domain = ret->res_domain;
-+#endif
-     /*
-      * At minimum, the top and bottom resources must be claimed, so that
-      * resources that are (or appear to be) unallocated can be relocated.
-      */
--    RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
- #ifdef __sparc__
--    RANGE(range, 0x00ffffff, 0x00ffffff, ResExcIoBlock);
-+    RANGE(range, 0x00ffffff, 0x00ffffff, ResExcIoBlock, domain);
- #else
--    RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock, domain);
- #endif
-     ret = xf86AddResToList(ret, &range, -1);
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/shared/stdResource.c.~1~   Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/shared/stdResource.c       Sun Jun  3 19:44:48 2001
-@@ -20,34 +20,42 @@
- resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
- #endif
-+#define MIN_SYSTEM_DOMAIN     0
-+#define MAX_SYSTEM_DOMAIN     0
-+#define ISA_SYSTEM_DOMAIN     0
-+
- resPtr
- xf86StdBusAccWindowsFromOS(void)
- {
-     /* Fallback is to allow addressing of all memory space */
-     resPtr ret = NULL;
-     resRange range;
-+    int domain;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-+    for (domain = MIN_SYSTEM_DOMAIN; domain <= MAX_SYSTEM_DOMAIN; domain++) {
-+      RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+
-+      /* Fallback is to allow addressing of all I/O space */
-+      RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, domain);
-+      ret = xf86AddResToList(ret, &range, -1);
-+    }
--    /* Fallback is to allow addressing of all I/O space */
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
--    ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
- resPtr
--xf86StdPciBusAccWindowsFromOS(void)
-+xf86StdPciBusAccWindowsFromOS(int domain)
- {
-     /* Fallback is to allow addressing of all memory space */
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /* Fallback is to allow addressing of all I/O space */
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
-@@ -59,11 +67,11 @@
-     resPtr ret = NULL;
-     resRange range;
--    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
-     /* Fallback is to allow addressing of all I/O space */
--    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock, ISA_SYSTEM_DOMAIN);
-     ret = xf86AddResToList(ret, &range, -1);
-     return ret;
- }
-@@ -72,6 +80,14 @@
- xf86StdAccResFromOS(resPtr ret)
- {
-     resRange range;
-+#ifdef HAVE_DOMAINS
-+    int domain = MIN_SYSTEM_DOMAIN;
-+#endif
-+
-+#ifdef HAVE_DOMAINS
-+    if (ret != NULL)
-+      domain = ret->res_domain;
-+#endif
-     /*
-      * Fallback is to claim the following areas:
-@@ -91,22 +107,22 @@
-      */
-     /* Fallback is to claim 0x0 - 0x9ffff and 0x100000 - 0x7fffffff */
--    RANGE(range, 0x00000000, 0x0009ffff, ResExcMemBlock);
-+    RANGE(range, 0x00000000, 0x0009ffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x000c0000, 0x000effff, ResExcMemBlock);
-+    RANGE(range, 0x000c0000, 0x000effff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x000f0000, 0x000fffff, ResExcMemBlock);
-+    RANGE(range, 0x000f0000, 0x000fffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     RANGE(range, 0x00100000, 0x3fffffff,
--      ResExcMemBlock | ResBios | ResEstimated);
-+      ResExcMemBlock | ResBios | ResEstimated, domain);
-     ret = xf86AddResToList(ret, &range, -1);
- #if 0
--    RANGE(range, 0xfec00000, 0xfecfffff, ResExcMemBlock | ResBios);
-+    RANGE(range, 0xfec00000, 0xfecfffff, ResExcMemBlock | ResBios, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0xfee00000, 0xfeefffff, ResExcMemBlock | ResBios);
-+    RANGE(range, 0xfee00000, 0xfeefffff, ResExcMemBlock | ResBios, domain);
-     ret = xf86AddResToList(ret, &range, -1);
- #endif
--    RANGE(range, 0xffe00000, 0xffffffff, ResExcMemBlock | ResBios);
-+    RANGE(range, 0xffe00000, 0xffffffff, ResExcMemBlock | ResBios, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /*
-@@ -114,20 +130,20 @@
-      * along with their sparse I/O aliases, but that's too imprecise.  Instead
-      * claim a bare minimum here.
-      */
--    RANGE(range, 0x00000000, 0x000000ff, ResExcIoBlock); /* For mainboard */
-+    RANGE(range, 0x00000000, 0x000000ff, ResExcIoBlock, domain); /* For mainboard */
-     ret = xf86AddResToList(ret, &range, -1);
-     /*
-      * At minimum, the top and bottom resources must be claimed, so that
-      * resources that are (or appear to be) unallocated can be relocated.
-      */
--/*  RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock);
-+/*  RANGE(range, 0x00000000, 0x00000000, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock);
-+    RANGE(range, 0xffffffff, 0xffffffff, ResExcMemBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
--    RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
-+    RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1); */
--    RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock);
-+    RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock, domain);
-     ret = xf86AddResToList(ret, &range, -1);
-     /* XXX add others */
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/shared/vidmem.c.~1~        Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/shared/vidmem.c    Sun Jun  3 19:44:48 2001
-@@ -135,6 +135,29 @@
-       }
- }
-+void
-+xf86MakeNewMapping(int ScreenNum, int Flags, unsigned long Base, unsigned long Size, pointer Vbase)
-+{
-+      VidMapPtr vp;
-+      MappingPtr mp;
-+
-+      vp = getVidMapRec(ScreenNum);
-+      mp = newMapping(vp);
-+      mp->physBase = Base;
-+      mp->size = Size;
-+      mp->virtBase = Vbase;
-+      mp->flags = Flags;
-+}
-+
-+void
-+xf86InitVidMem(void)
-+{
-+      if (!vidMemInfo.initialised) {
-+              memset(&vidMemInfo, 0, sizeof(VidMemInfo));
-+              xf86OSInitVidMem(&vidMemInfo);
-+      }
-+}
-+
- pointer
- xf86MapVidMem(int ScreenNum, int Flags, unsigned long Base, unsigned long Size)
- {
---- XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h.~1~  Sun Jun  3 19:44:41 2001
-+++ XFree86-4.1.0/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h      Sun Jun  3 19:44:48 2001
-@@ -137,6 +137,8 @@
- /* public functions */
- extern Bool xf86LinearVidMem(void);
- extern Bool xf86CheckMTRR(int); 
-+extern void xf86MakeNewMapping(int, int, unsigned long, unsigned long, pointer);
-+extern void xf86InitVidMem(void);
- extern pointer xf86MapVidMem(int, int, unsigned long, unsigned long);
- extern void xf86UnMapVidMem(int, pointer, unsigned long);
- extern void xf86MapReadSideEffects(int, int, pointer, unsigned long);
-@@ -235,13 +237,13 @@
- /* RAC-related privs */
- /* internal to os-support layer */
- resPtr xf86StdBusAccWindowsFromOS(void);
--resPtr xf86StdPciAccWindowsFromOS(void);
-+resPtr xf86StdPciAccWindowsFromOS(int domain);
- resPtr xf86StdIsaAccWindowsFromOS(void);
- resPtr xf86StdAccResFromOS(resPtr ret);
- /* available to the common layer */
- resPtr xf86BusAccWindowsFromOS(void);
--resPtr xf86PciBusAccWindowsFromOS(void);
-+resPtr xf86PciBusAccWindowsFromOS(int domain);
- resPtr xf86IsaBusAccWindowsFromOS(void);
- resPtr xf86AccResFromOS(resPtr ret);
- #endif /* NEED_OS_RAC_PROTOS */
This page took 0.126046 seconds and 4 git commands to generate.