@@ 9,8 9,8 @@ typedef struct SDreq SDreq;
typedef struct SDunit SDunit;
typedef struct SDperm {
- char name[NAMELEN];
- char user[NAMELEN];
+ char name[KNAMELEN];
+ char user[KNAMELEN];
ulong perm;
} SDperm;
@@ 50,7 50,7 @@ typedef struct SDev {
SDifc* ifc; /* pnp/legacy */
void *ctlr;
int idno;
- char name[NAMELEN];
+ char name[KNAMELEN];
int index; /* into unit space */
int nunit;
SDev* next;
@@ 59,7 59,7 @@ typedef struct SDev {
int enabled;
} SDev;
-typedef struct SDifc {
+struct SDifc {
char* name;
SDev* (*pnp)(void);
@@ 75,8 75,8 @@ typedef struct SDifc {
int (*wctl)(SDunit*, Cmdbuf*);
long (*bio)(SDunit*, int, int, void*, long, long);
- SDev* (*config)(int on, char *spec, void *cf);
-} SDifc;
+ SDev* (*config)(int on, char *spec, DevConf *cf);
+};
typedef struct SDreq {
SDunit* unit;
@@ 7,7 7,7 @@
#include "ureg.h"
#include "../port/error.h"
-#include "../port/sd.h"
+#include "sd.h"
extern SDifc sdataifc;
@@ 353,17 353,16 @@ ataready(int cmdport, int ctlport, int dev, int reset, int ready, int micro)
* can be used as a test for !Bsy.
*/
as = inb(ctlport+As);
- if(as & reset)
- ;
- else if(dev){
- outb(cmdport+Dh, dev);
- dev = 0;
- }
- else if(ready == 0 || (as & ready)){
- atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as);
- return as;
+ if((as & reset) == 0){
+ if(dev){
+ outb(cmdport+Dh, dev);
+ dev = 0;
+ }
+ else if(ready == 0 || (as & ready)){
+ atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as);
+ return as;
+ }
}
-
if(micro-- <= 0){
atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as);
break;
@@ 1581,18 1580,15 @@ static SDev*
ataid(SDev* sdev)
{
int i;
- Ctlr *ctlr;
if(sdev == nil)
return nil;
- ctlr = sdev->ctlr;
i = 0;
while(sdev){
if(sdev->ifc == &sdataifc){
- ctlr = sdev->ctlr;
sdev->idno = 'C'+i;
i++;
- snprint(sdev->name, NAMELEN, "sd%c", sdev->idno);
+ snprint(sdev->name, KNAMELEN, "sd%c", sdev->idno);
}
sdev = sdev->next;
}
@@ 1606,14 1602,14 @@ static int
ataenable(SDev* sdev)
{
Ctlr *ctlr;
- char name[NAMELEN];
+ char name[KNAMELEN];
ctlr = sdev->ctlr;
if(ctlr->bmiba){
ctlr->prdt = xspanalloc(Nprd*sizeof(Prd), 4, 4*1024);
}
- snprint(name, NAMELEN, "%s (%s)", sdev->name, sdev->ifc->name);
+ snprint(name, KNAMELEN, "%s (%s)", sdev->name, sdev->ifc->name);
// intrenable(ctlr->irq, atainterrupt, ctlr, ctlr->tbdf, name);
outb(ctlr->ctlport+Dc, 0);
intrenable(ataitype, atairq, atainterrupt, ctlr, name);
@@ 2040,9 2036,8 @@ struct Try {
};
static SDev*
-ataconfig(int on, char *, void *pf)
+ataconfig(int on, char *, DevConf *cf)
{
- DevConf* cf = pf;
int cmdport;
int ctlport;
int irq;
@@ 2054,10 2049,10 @@ ataconfig(int on, char *, void *pf)
rc = nil;
for (try = &tries[0]; try->p != 0 || try->c != 0; try++){
ataitype = cf->itype;
- atairq = cf->intnum;
+ atairq = cf->irq;
cmdport = cf->port + try->p;
ctlport = cmdport + try->c;
- irq = cf->intnum;
+ irq = cf->irq;
rc = ataprobe(cmdport, ctlport, irq);
if (rc)
break;
@@ 124,6 124,8 @@ enum
Ckbdint= (1<<0), /* kbd interrupt enable */
};
+int mouseshifted;
+
static Lock i8042lock;
static uchar ccc;
static void (*auxputc)(int, int);
@@ 326,6 328,7 @@ i8042intr(Ureg*, void*)
break;
case Shift:
shift = 0;
+ mouseshifted = 0;
break;
case Ctrl:
ctl = 0;
@@ 369,6 372,7 @@ i8042intr(Ureg*, void*)
return;
case Shift:
shift = 1;
+ mouseshifted = 1;
return;
case Latin:
alt = 1;