| plan 9 kernel history: overview | file list | diff list |
1994/1109/pc/devastar.c (diff list | history)
| 1994/1108/sys/src/9/pc/devastar.c:225,230 – 1994/1109/sys/src/9/pc/devastar.c:225,231 (short | long | prev | next) | ||
| 1994/1106 | { QLock; | |
| 1994/1109 | Astar *a; /* controller */ | |
| 1994/1107 | CCB *ccb; /* control block */ | |
| 1994/1106 | /* buffers */ | |
| 1994/1108/sys/src/9/pc/devastar.c:242,250 – 1994/1109/sys/src/9/pc/devastar.c:243,252 | ||
| 1994/1106 | uchar *oe; }; | |
| 1994/1107 |
| |
| 1994/1109 | Astar *astar[Maxcard]; int nastar; | |
| 1994/1107 |
| |
| 1994/1109 | static int astarsetup(Astar*); | |
| 1994/1107 | ||
| 1994/1106 | void | |
| 1994/1107 | astarreset(void) | |
| 1994/1108/sys/src/9/pc/devastar.c:254,263 – 1994/1109/sys/src/9/pc/devastar.c:256,265 | ||
| 1994/1106 | Dirtab *dp; for(i = 0; i < Maxcard; i++){ | |
| 1994/1107 |
| |
| 1994/1109 | a = astar[nastar] = xalloc(sizeof(Astar)); | |
| 1994/1107 | if(isaconfig("serial", i, &a) == 0){ xfree(a); | |
| 1994/1109 | astar[nastar] = 0; | |
| 1994/1106 | break; } | |
| 1994/1108/sys/src/9/pc/devastar.c:276,284 – 1994/1109/sys/src/9/pc/devastar.c:278,287 | ||
| 1994/1107 | if(astarsetup(a) < 0){ xfree(a); | |
| 1994/1109 | astar[nastar] = 0; | |
| 1994/1107 | continue; } | |
| 1994/1109 | nastar++; | |
| 1994/1107 | } | |
| 1994/1106 | ndir = 3*nuart; | |
| 1994/1108/sys/src/9/pc/devastar.c:306,316 – 1994/1109/sys/src/9/pc/devastar.c:309,319 | ||
| 1994/1107 | { } | |
| 1994/1109 | /* isa ports an ax00i can appear at */ int isaport[] = { 0x200, 0x208, 0x300, 0x308, 0x600, 0x608, 0x700, 0x708, 0 }; | |
| 1994/1107 |
| |
| 1994/1109 | static int astarprobe(int port) | |
| 1994/1107 | { uchar c, c1; | |
| 1994/1108/sys/src/9/pc/devastar.c:323,329 – 1994/1109/sys/src/9/pc/devastar.c:326,332 | ||
| 1994/1107 | || (c == ISAid1 && c1 == ISAid0)); } | |
| 1994/1109 | static int | |
| 1994/1107 | astarsetup(Astar *a) { int i, j, found; | |
| 1994/1108/sys/src/9/pc/devastar.c:333,339 – 1994/1109/sys/src/9/pc/devastar.c:336,342 | ||
| 1994/1107 | if(a->port == 0) for(i = 0; isaport[i]; i++){ a->port = isaport[i]; | |
| 1994/1109 | found = astarprobe(isaport[i]); | |
| 1994/1107 | if(found){ isaport[i] = -1; break; | |
| 1994/1108/sys/src/9/pc/devastar.c:357,360 – 1994/1109/sys/src/9/pc/devastar.c:360,365 | ||
| 1994/1107 | } c = inb(a->port + ISActl1) & ~ISAirq; outb(a->port + ISActl1, c | isairqcode(a->irq)); | |
| 1994/1109 | return 0; | |
| 1994/1106 | } | |