Lines Matching refs:info

117 openpic_read(openpic_info *info, int reg)
119 return B_SWAP_INT32(info->pci->read_io_32(info->device,
120 info->virtual_registers + reg));
125 openpic_write(openpic_info *info, int reg, uint32 val)
127 info->pci->write_io_32(info->device, info->virtual_registers + reg,
133 openpic_read_irq(openpic_info *info, int cpu)
135 return openpic_read(info, OPENPIC_IACK(cpu)) & OPENPIC_VECTOR_MASK;
140 openpic_eoi(openpic_info *info, int cpu)
142 openpic_write(info, OPENPIC_EOI(cpu), 0);
144 //openpic_read(info, OPENPIC_EOI(cpu));
149 openpic_enable_irq(openpic_info *info, int irq, int type)
155 x = openpic_read(info, OPENPIC_SRC_VECTOR(irq));
161 openpic_write(info, OPENPIC_SRC_VECTOR(irq), x);
166 openpic_disable_irq(openpic_info *info, int irq)
170 x = openpic_read(info, OPENPIC_SRC_VECTOR(irq));
172 openpic_write(info, OPENPIC_SRC_VECTOR(irq), x);
177 openpic_set_priority(openpic_info *info, int cpu, int pri)
181 x = openpic_read(info, OPENPIC_CPU_PRIORITY(cpu));
184 openpic_write(info, OPENPIC_CPU_PRIORITY(cpu), x);
189 openpic_init(openpic_info *info)
191 uint32 x = openpic_read(info, OPENPIC_FEATURE);
211 info->cpu_count = ((x & OPENPIC_FEATURE_LAST_CPU_MASK) >>
213 info->irq_count = ((x & OPENPIC_FEATURE_LAST_IRQ_MASK) >>
223 featureVersion, info->cpu_count, info->irq_count);
226 for (int irq = 0; irq < info->irq_count; irq++)
227 openpic_write(info, OPENPIC_SRC_VECTOR(irq), OPENPIC_IMASK);
229 openpic_set_priority(info, 0, 15);
232 x = openpic_read(info, OPENPIC_CONFIG);
234 openpic_write(info, OPENPIC_CONFIG, x);
237 for (int irq = 0; irq < info->irq_count; irq++)
238 openpic_write(info, OPENPIC_IDEST(irq), 1 << 0);
240 for (int irq = 0; irq < info->irq_count; irq++) {
246 openpic_write(info, OPENPIC_SRC_VECTOR(irq), x);
252 openpic_set_priority(info, 0, 0);
255 for (int irq = 0; irq < info->irq_count; irq++) {
256 openpic_read_irq(info, 0);
257 openpic_eoi(info, 0);
317 // info about ourself
337 openpic_info *info = new(nothrow) openpic_info;
338 if (!info)
340 ObjectDeleter<openpic_info> infoDeleter(info);
342 info->node = node;
347 (driver_module_info**)&info->pci, &aCookie);
351 info->pci->info.init_driver(node, (void**)&info->device);
353 // get the pci info for the device
355 info->pci->get_pci_info(info->device, &pciInfo);
357 // find supported device info
358 info->supported_device = openpic_check_supported_device(pciInfo.vendor_id,
360 if (!info->supported_device) {
366 info->supported_device->name, pciInfo.vendor_id, pciInfo.device_id);
371 if (registerSpaceSize < info->supported_device->register_offset
372 || registerSpaceSize - info->supported_device->register_offset
376 physicalRegisterBase += info->supported_device->register_offset;
377 registerSpaceSize -= info->supported_device->register_offset;
387 return info->register_area;
389 info->physical_registers = physicalRegisterBase;
390 info->register_space_size = registerSpaceSize;
391 info->register_area = registerArea;
392 info->virtual_registers = (addr_t)virtualRegisterBase;
395 status = openpic_init(info);
399 // keep the info
401 *cookie = info;
412 openpic_info *info = (openpic_info*)cookie;
414 delete info;
448 openpic_info *info = (openpic_info*)cookie;
450 *_info = *info;
459 openpic_info *info = (openpic_info*)cookie;
461 openpic_enable_irq(info, irq, type);
470 openpic_info *info = (openpic_info*)cookie;
472 openpic_disable_irq(info, irq);
481 openpic_info *info = (openpic_info*)cookie;
487 int irq = openpic_read_irq(info, cpu);
492 openpic_eoi(info, cpu);