You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

select_isapnp.c 836B

1234567891011121314151617181920212223242526272829303132
  1. #include "dev.h"
  2. #include "isapnp.h"
  3. #include "registers.h"
  4. /*
  5. * Register a device as the default ISAPnP boot device. This code is
  6. * called by the ISAPnP ROM prefix.
  7. *
  8. * Do not move this code to drivers/bus/isapnp.c, because it is
  9. * i386-specific, and don't merge it with select_pci.c, because that
  10. * would cause linker symbol pollution.
  11. *
  12. */
  13. void i386_select_isapnp_device ( struct i386_all_regs *ix86 ) {
  14. /*
  15. * PnP BIOS passes card select number in %bx and read port
  16. * address in %dx.
  17. *
  18. */
  19. union {
  20. struct bus_loc bus_loc;
  21. struct isapnp_loc isapnp_loc;
  22. } u;
  23. /* Set ISAPnP read port */
  24. isapnp_read_port = ix86->regs.dx;
  25. /* Select ISAPnP bus and specified CSN as first boot device */
  26. memset ( &u, 0, sizeof ( u ) );
  27. u.isapnp_loc.csn = ix86->regs.bx;
  28. select_device ( &dev, &isapnp_driver, &u.bus_loc );
  29. }