156 PCI_COMM_IO;
157
158 /*
159 * Internal routines in support of particular pci_ctlops.
160 */
161 static int pci_removechild(dev_info_t *child);
162 static int pci_initchild(dev_info_t *child);
163
164 /*
165 * Module linkage information for the kernel.
166 */
167
168 static struct modldrv modldrv = {
169 &mod_driverops, /* Type of module */
170 "x86 Host to PCI nexus driver", /* Name of module */
171 &pci_ops, /* driver ops */
172 };
173
174 static struct modlinkage modlinkage = {
175 MODREV_1,
176 (void *)&modldrv,
177 NULL
178 };
179
180 int
181 _init(void)
182 {
183 int e;
184
185 /*
186 * Initialize per-pci bus soft state pointer.
187 */
188 e = ddi_soft_state_init(&pci_statep, sizeof (pci_state_t), 1);
189 if (e != 0)
190 return (e);
191
192 if ((e = mod_install(&modlinkage)) != 0)
193 ddi_soft_state_fini(&pci_statep);
194
195 return (e);
196 }
197
|
156 PCI_COMM_IO;
157
158 /*
159 * Internal routines in support of particular pci_ctlops.
160 */
161 static int pci_removechild(dev_info_t *child);
162 static int pci_initchild(dev_info_t *child);
163
164 /*
165 * Module linkage information for the kernel.
166 */
167
168 static struct modldrv modldrv = {
169 &mod_driverops, /* Type of module */
170 "x86 Host to PCI nexus driver", /* Name of module */
171 &pci_ops, /* driver ops */
172 };
173
174 static struct modlinkage modlinkage = {
175 MODREV_1,
176 { (void *)&modldrv, NULL }
177 };
178
179 int
180 _init(void)
181 {
182 int e;
183
184 /*
185 * Initialize per-pci bus soft state pointer.
186 */
187 e = ddi_soft_state_init(&pci_statep, sizeof (pci_state_t), 1);
188 if (e != 0)
189 return (e);
190
191 if ((e = mod_install(&modlinkage)) != 0)
192 ddi_soft_state_fini(&pci_statep);
193
194 return (e);
195 }
196
|