| plan 9 kernel history: overview | file list | diff list |
1991/0115/gnot/devport.c (diff list | history)
| 1991/0110/sys/src/9/gnot/devport.c:8,15 – 1991/0115/sys/src/9/gnot/devport.c:8,13 (short | long) | ||
| 1991/0110 | #include "devtab.h" | |
| 1991/0115/sys/src/9/gnot/devport.c:106,112 – 1991/0411/sys/src/9/gnot/devport.c:106,112 (short | long) | ||
| 1991/0110 | {} long | |
| 1991/0411 | portread(Chan *c, char *a, long n, ulong offset) | |
| 1991/0110 | { long s, k; if (n == 0) | |
| 1991/0115/sys/src/9/gnot/devport.c:115,123 – 1991/0411/sys/src/9/gnot/devport.c:115,123 | ||
| 1991/0110 | case Qdir: return devdirread(c, a, n, portdir, NPORT, devgen); case Qdata: | |
| 1991/0411 | if (!conf.portispaged || (s = offset >> PORTSHIFT) > 0xff) | |
| 1991/0110 | s = -1; | |
| 1991/0411 | k = offset % PORTSIZE; | |
| 1991/0110 | P_qlock(s); switch ((int)n) { case 1: | |
| 1991/0115/sys/src/9/gnot/devport.c:139,145 – 1991/0411/sys/src/9/gnot/devport.c:139,145 | ||
| 1991/0110 | } long | |
| 1991/0411 | portwrite(Chan *c, char *a, long n, ulong offset) | |
| 1991/0110 | { long s, k; if (n == 0) | |
| 1991/0115/sys/src/9/gnot/devport.c:146,154 – 1991/0411/sys/src/9/gnot/devport.c:146,154 | ||
| 1991/0110 | return 0; switch ((int)c->qid.path) { case Qdata: | |
| 1991/0411 | if (!conf.portispaged || (s = offset >> PORTSHIFT) > 0xff) | |
| 1991/0110 | s = -1; | |
| 1991/0411 | k = offset % PORTSIZE; | |
| 1991/0110 | P_qlock(s); switch ((int)n) { case 1: | |
| 1991/0411/sys/src/9/gnot/devport.c:83,88 – 1991/0419/sys/src/9/gnot/devport.c:83,94 (short | long) | ||
| 1991/0110 | return devwalk(c, name, portdir, NPORT, devgen); } | |
| 1991/0419 | Chan* portclwalk(Chan *c, char *name) { return devclwalk(c, name); } | |
| 1991/0110 | void portstat(Chan *c, char *db) { | |
| 1991/0419/sys/src/9/gnot/devport.c:83,94 – 1991/0427/sys/src/9/gnot/devport.c:83,88 (short | long) | ||
| 1991/0110 | return devwalk(c, name, portdir, NPORT, devgen); } | |
| 1991/0419 |
| |
| 1991/0110 | void portstat(Chan *c, char *db) { | |
| 1991/0427/sys/src/9/gnot/devport.c:14,20 – 1991/1112/sys/src/9/gnot/devport.c:14,20 (short | long) | ||
| 1991/0110 | }; Dirtab portdir[]={ | |
| 1991/1112 | "data", {Qdata}, 0, 0666, | |
| 1991/0110 | }; #define NPORT (sizeof portdir/sizeof(Dirtab)) | |
| 1991/1112/sys/src/9/gnot/devport.c:4,10 – 1992/0111/sys/src/9/gnot/devport.c:4,10 (short | long) | ||
|
Move error.h to ../port. Change errors to actual strings.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1991/0110 | #include "dat.h" #include "fns.h" #include "io.h" | |
| 1992/0111 | #include "../port/error.h" | |
| 1991/0110 | #include "devtab.h" | |
| 1992/0111/sys/src/9/gnot/devport.c:8,20 – 1992/0225/sys/src/9/gnot/devport.c:8,25 (short | long) | ||
| 1991/0110 | #include "devtab.h" | |
| 1992/0225 | #define ROMADDR 0x40000000 #define ROMSIZE ((256*1024)/8) | |
| 1991/0110 | enum { Qdir, Qdata, | |
| 1992/0225 | Qrom | |
| 1991/0110 | }; Dirtab portdir[]={ | |
| 1991/1112 | "data", {Qdata}, 0, 0666, | |
| 1992/0225 | "rom", {Qrom}, ROMSIZE, 0444, | |
| 1991/0110 | }; #define NPORT (sizeof portdir/sizeof(Dirtab)) | |
| 1992/0111/sys/src/9/gnot/devport.c:131,136 – 1992/0225/sys/src/9/gnot/devport.c:136,149 | ||
| 1991/0110 | error(Ebadarg); } P_qunlock(s); | |
| 1992/0225 | break; case Qrom: if(offset >= ROMSIZE) return 0; if(offset+n > ROMSIZE) n = ROMSIZE - offset; memmove(a, ((char*)ROMADDR)+offset, n); return n; | |
| 1991/0110 | break; default: panic("portread"); | |
| 1992/0225/sys/src/9/gnot/devport.c:1,5 – 1992/0321/sys/src/9/gnot/devport.c:1,5 (short | long) | ||
|
Move lib.h to ../port.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1991/0110 | #include "u.h" | |
| 1992/0321 | #include "../port/lib.h" | |
| 1991/0110 | #include "mem.h" #include "dat.h" #include "fns.h" | |
| 1992/0321/sys/src/9/gnot/devport.c:11,17 – 1992/0621/sys/src/9/gnot/devport.c:11,25 (short | long) | ||
| 1992/0225 | #define ROMADDR 0x40000000 #define ROMSIZE ((256*1024)/8) | |
| 1991/0110 |
| |
| 1992/0621 | #define P_oper(sel, inst) (P_qlock(sel), inst, P_qunlock(sel)) #define P_qlock(sel) (sel >= 0 ? (qlock(&portpage), \ PORTSELECT = portpage.select = sel) : -1) #define P_qunlock(sel) (sel >= 0 ? (qunlock(&portpage),0) : -1) #define P_read(sel, addr, val, type) P_oper(sel, val = *(type *)(PORT+addr)) #define P_write(sel, addr, val, type) P_oper(sel, *(type *)(PORT+addr) = val) enum { | |
| 1991/0110 | Qdir, Qdata, | |
| 1992/0225 | Qrom | |
| 1992/0321/sys/src/9/gnot/devport.c:24,29 – 1992/0621/sys/src/9/gnot/devport.c:32,42 | ||
| 1991/0110 | #define NPORT (sizeof portdir/sizeof(Dirtab)) | |
| 1992/0621 | #define Nportservice 8 static int (*portservice[Nportservice])(void); static Portpage portpage; static Lock intrlock; | |
| 1991/0110 | int portprobe(char *what, int select, int addr, int rw, long val) { | |
| 1992/0321/sys/src/9/gnot/devport.c:33,49 – 1992/0621/sys/src/9/gnot/devport.c:46,68 | ||
| 1991/0110 | P_qlock(select); switch (rw) { case -1: | |
| 1992/0621 | val = *(uchar *)(PORT+addr); break; | |
| 1991/0110 | case -2: | |
| 1992/0621 | val = *(ushort *)(PORT+addr); break; | |
| 1991/0110 | case -4: | |
| 1992/0621 | val = *(long *)(PORT+addr); break; | |
| 1991/0110 | case 1: | |
| 1992/0621 | *(uchar *)(PORT+addr) = val; break; | |
| 1991/0110 | case 2: | |
| 1992/0621 | *(ushort *)(PORT+addr) = val; break; | |
| 1991/0110 | case 4: | |
| 1992/0621 | *(long *)(PORT+addr) = val; break; | |
| 1991/0110 | default: panic("portprobe"); } | |
| 1992/0321/sys/src/9/gnot/devport.c:68,74 – 1992/0621/sys/src/9/gnot/devport.c:87,94 | ||
| 1991/0110 | void portinit(void) | |
| 1992/0621 | { } | |
| 1991/0110 | Chan * portattach(char *param) | |
| 1992/0321/sys/src/9/gnot/devport.c:108,114 – 1992/0621/sys/src/9/gnot/devport.c:128,135 | ||
| 1991/0110 | void portclose(Chan *c) | |
| 1992/0621 | { } | |
| 1991/0110 | long | |
| 1991/0411 | portread(Chan *c, char *a, long n, ulong offset) | |
| 1992/0321/sys/src/9/gnot/devport.c:167,175 – 1992/0621/sys/src/9/gnot/devport.c:188,198 | ||
| 1991/0110 | case 1: PORT[k] = *a; break; case 2: | |
| 1992/0621 | *(short *)(PORT+k) = *(short *)a; break; | |
| 1991/0110 | case 4: | |
| 1992/0621 | *(long *)(PORT+k) = *(long *)a; break; | |
| 1991/0110 | default: P_qunlock(s); error(Ebadarg); | |
| 1992/0321/sys/src/9/gnot/devport.c:185,190 – 1992/0621/sys/src/9/gnot/devport.c:208,214 | ||
| 1991/0110 | void portremove(Chan *c) { | |
| 1992/0621 | USED(c); | |
| 1991/0110 | error(Eperm); } | |
| 1992/0321/sys/src/9/gnot/devport.c:191,211 – 1992/0621/sys/src/9/gnot/devport.c:215,230 | ||
| 1991/0110 | void portwstat(Chan *c, char *dp) { | |
| 1992/0621 | USED(c, dp); | |
| 1991/0110 | error(Eperm); } | |
| 1992/0621 | ||
| 1991/0110 | lock(&intrlock); for (p=portservice; *p; p++) if (*p == f) | |
| 1992/0321/sys/src/9/gnot/devport.c:221,233 – 1992/0621/sys/src/9/gnot/devport.c:240,254 | ||
| 1991/0110 | void devportintr(void) { | |
| 1992/0621 | int (**p)(void); int i = 0; | |
| 1991/0110 | for (p=portservice; *p; p++) i |= (**p)(); | |
| 1992/0621 | ||
| 1991/0110 | if (!i) /*putstring("spurious portintr\n");*/ panic("portintr"); if (portpage.select >= 0) PORTSELECT = portpage.select; | |
| 1992/0621/sys/src/9/gnot/devport.c:123,128 – 1992/0711/sys/src/9/gnot/devport.c:123,129 (short | long) | ||
| 1991/0110 | void portcreate(Chan *c, char *name, int omode, ulong perm) { | |
| 1992/0711 | USED(c, name, omode, perm); | |
| 1991/0110 | error(Eperm); } | |
| 1992/0621/sys/src/9/gnot/devport.c:129,134 – 1992/0711/sys/src/9/gnot/devport.c:130,136 | ||
| 1991/0110 | void portclose(Chan *c) | |
| 1992/0621 | { | |
| 1992/0711 | USED(c); | |
| 1992/0621 | } | |
| 1991/0110 | long | |
| 1992/0711/sys/src/9/gnot/devport.c:34,40 – 1992/0808/sys/src/9/gnot/devport.c:34,40 (short | long) | ||
| 1991/0110 | ||
| 1992/0621 | #define Nportservice 8 static int (*portservice[Nportservice])(void); | |
| 1992/0808 | Portpage portpage; | |
| 1992/0621 | static Lock intrlock; | |
| 1991/0110 | int | |
| 1992/0808/sys/src/9/gnot/devport.c:11,20 – 1992/0916/sys/src/9/gnot/devport.c:11,26 (short | long) | ||
| 1992/0225 | #define ROMADDR 0x40000000 #define ROMSIZE ((256*1024)/8) | |
| 1992/0621 |
| |
| 1992/0916 | #define P_qlock(sel) if(sel >= 0){\ qlock(&portpage);\ PORTSELECT = portpage.select = sel;\ }else #define P_qunlock(sel) if(sel >= 0){\ qunlock(&portpage);\ }else #define P_oper(sel, inst) P_qlock(sel); inst; P_qunlock(sel) | |
| 1992/0621 | #define P_read(sel, addr, val, type) P_oper(sel, val = *(type *)(PORT+addr)) #define P_write(sel, addr, val, type) P_oper(sel, *(type *)(PORT+addr) = val) | |
| 1992/0916/sys/src/9/gnot/devport.c:1,262 – 1993/0501/sys/src/9/gnot/devport.c:0 (short | long) | ||
|
Deleted.
rsc Mon Mar 7 10:21:42 2005 | ||
| 1991/0110 |
| |
| 1992/0321 |
| |
| 1991/0110 |
| |
| 1992/0111 |
| |
| 1991/0110 |
| |
| 1992/0225 |
| |
| 1992/0916 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0225 |
| |
| 1991/0110 |
| |
| 1991/1112 |
| |
| 1992/0225 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1992/0808 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0711 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1992/0711 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1991/0411 |
| |
| 1991/0110 |
| |
| 1991/0411 |
| |
| 1991/0110 |
| |
| 1991/0411 |
| |
| 1991/0110 |
| |
| 1992/0225 |
| |
| 1991/0110 |
| |
| 1991/0411 |
| |
| 1991/0110 |
| |
| 1991/0411 |
| |
| 1991/0110 |
| |
| 1991/0411 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 | ||
| 1991/0110 |
| |
| 1992/0621 |
| |
| 1991/0110 |
| |
| 1992/0621 | ||
| 1991/0110 |
| |