patch-2.3.35 linux/include/asm-sparc/pbm.h

Next file: linux/include/asm-sparc/pcic.h
Previous file: linux/include/asm-sparc/openpromio.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.34/linux/include/asm-sparc/pbm.h linux/include/asm-sparc/pbm.h
@@ -1,4 +1,5 @@
-/* $Id: pbm.h,v 1.1 1998/09/22 05:54:44 jj Exp $
+/* $Id: pbm.h,v 1.3 1999/12/20 17:06:35 zaitcev Exp $
+ *
  * pbm.h: PCI bus module pseudo driver software state
  *        Adopted from sparc64 by V. Roganov and G. Raiko
  *
@@ -6,6 +7,14 @@
  * pbm.h: U2P PCI bus module pseudo driver software state.
  *
  * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
+ *
+ * To put things into perspective, consider sparc64 with a few PCI controllers.
+ * Each type would have an own structure, with instances related one to one.
+ * We have only pcic on sparc, but we want to be compatible with sparc64 pbm.h.
+ * All three represent different abstractions.
+ *   pci_bus  - Linux PCI subsystem view of a PCI bus (including bridged buses)
+ *   pbm      - Arch-specific view of a PCI bus (sparc or sparc64)
+ *   pcic     - Chip-specific information for PCIC.
  */
 
 #ifndef __SPARC_PBM_H
@@ -14,34 +23,15 @@
 #include <linux/pci.h>
 #include <asm/oplib.h>
 
-struct linux_pbm_info;
-
-/* This is what we use to determine what the PROM has assigned so
- * far, so that we can perform assignments for addresses which
- * were not taken care of by OBP.  See psycho.c for details.
- * Per-PBM these are ordered by start address.
- */
-struct pci_vma {
-	struct pci_vma			*next;
-	struct linux_pbm_info		*pbm;
-	unsigned int			start;
-	unsigned int			end;
-	unsigned int			offset;
-	unsigned int			_pad;
-};
-
 struct linux_pbm_info {
-	struct pci_vma			*IO_assignments;
-	struct pci_vma			*MEM_assignments;
-	int				prom_node;
-	char				prom_name[64];
-	struct linux_prom_pci_ranges	pbm_ranges[PROMREG_MAX];
-	int				num_pbm_ranges;
+	int		prom_node;
+	char		prom_name[64];
+	/* struct linux_prom_pci_ranges	pbm_ranges[PROMREG_MAX]; */
+	/* int		num_pbm_ranges; */
 
 	/* Now things for the actual PCI bus probes. */
-	unsigned int			pci_first_busno;
-	unsigned int			pci_last_busno;
-	struct pci_bus			pci_bus;
+	unsigned int	pci_first_busno;	/* Can it be nonzero? */
+	struct pci_bus	*pci_bus;		/* Was inline, MJ allocs now */
 };
 
 /* PCI devices which are not bridges have this placed in their pci_dev

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)