From a538d0612982538e6b7e45060f45aaf7f5f56c41 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 16 Sep 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-09-16 --- gnot/dat.h | 6 ++---- gnot/devport.c | 14 ++++++++++---- pc/devether.c | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/gnot/dat.h b/gnot/dat.h index 7dca97328d4ad5fba5fae13dc00cfbcaa79903ff..49602b9068df792db6bcb0026e2d8dff5b6c307a 100644 --- a/gnot/dat.h +++ b/gnot/dat.h @@ -80,7 +80,7 @@ struct Conf int nisdn; /* number of isdn interfaces */ int nlapd; /* number of dragnet protocol modules */ int copymode; /* 0 is copy on write, 1 is copy on reference */ - int portispaged; /* ??? */ + int portispaged; /* 1 if extended I/O port addresses */ int nconc; /* number of datakit concentrators */ }; @@ -129,15 +129,13 @@ struct Mach struct Portpage { - union { + union{ Lock; QLock; }; int select; }; -extern int portispaged; - #define NERR 25 #define NNOTE 5 struct User diff --git a/gnot/devport.c b/gnot/devport.c index 8f63547e27704c1f8ac618e96bb1813e57beeaa6..1aeda20e7acedbe912adee7c38cc83149614bce5 100644 --- a/gnot/devport.c +++ b/gnot/devport.c @@ -11,10 +11,16 @@ #define ROMADDR 0x40000000 #define ROMSIZE ((256*1024)/8) -#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_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) #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) diff --git a/pc/devether.c b/pc/devether.c index 454072a577ebebd953a8aebf7f238134e97ae7b1..9c233ca5b1e2dd441e8189c7dad9d0620daa8cb8 100644 --- a/pc/devether.c +++ b/pc/devether.c @@ -738,7 +738,7 @@ dp8390init(Ctlr *cp) OUT(hw, w.cr, 0x21); /* Page0|RD2|STP */ if(hw->bt16) - OUT(hw, w.dcr, 0x61); /* 16 bit interface */ + OUT(hw, w.dcr, 0x01); /* 16 bit interface */ else OUT(hw, w.dcr, 0x48); /* FT1|LS */ OUT(hw, w.rbcr0, 0);