| plan 9 kernel history: overview | file list | diff list |
2000/1006/pc/pcmciamodem.c (diff list | history)
| 2000/1006/sys/src/9/pc/pcmciamodem.c:1,65 – 2001/1201/sys/src/9/pc/pcmciamodem.c:1,67 (short | long | prev | next) | ||
|
Format edit. Use ioalloc.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1998/0221 | #include "u.h" #include "../port/lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "io.h" #include "ureg.h" #include "../port/error.h" /* * PCMCIA modem. * By default, this will set it up with the port and irq of * COM2 unless a serialx=type=com line is found in plan9.ini. * The assumption is that a laptop with a pcmcia will have only * one com port. */ enum { Maxcard= 8, }; static char* modems[] = { "IBM 33.6 Data/Fax/Voice Modem", | |
| 1998/0918 |
| |
| 2001/1201 | "CM-56G", /* Xircom CreditCard Modem 56 - GlobalACCESS */ | |
| 1998/0221 | "KeepInTouch", | |
| 1999/0312 | "CEM56", | |
| 1998/0221 | 0, }; void pcmciamodemlink(void) { ISAConf isa; | |
| 2000/1006 | int i, j, slot, com2used; | |
| 1998/0221 | i = 0; | |
| 2000/1006 | com2used = 0; for(j = 0; modems[j]; j++){ | |
| 1998/0221 | memset(&isa, 0, sizeof(isa)); /* look for a configuration line */ for(; i < Maxcard; i++){ if(isaconfig("serial", i, &isa)) if(cistrcmp(isa.type, "com") == 0) break; memset(&isa, 0, sizeof(isa)); } | |
| 2000/1006 | if (isa.irq == 0 && isa.port == 0) { if (com2used == 0) { /* default is COM2 */ isa.irq = 3; isa.port = 0x2F8; com2used++; } else | |
| 1998/0811 | break; } | |
| 2000/1006 | slot = pcmspecial(modems[j], &isa); if(slot >= 0){ | |
| 2001/1201 | if(ioalloc(isa.port, 8, 0, modems[j]) < 0) print("%s port %lux already in use\n", modems[j], isa.port); | |
| 2000/1006 | print("%s in pcmcia slot %d port 0x%lux irq %lud\n", modems[j], slot, isa.port, isa.irq); } | |
| 1998/0221 | } } | |