M pc/devastar.c => pc/devastar.c +1 -2
@@ 1214,9 1214,8 @@ astarbwrite(Chan *c, Block *bp, ulong offset)
}
void
-astarcreate(Chan *c, char *name, int omode, ulong perm)
+astarcreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devata.c => pc/devata.c +1 -2
@@ 290,9 290,8 @@ ataopen(Chan *c, int omode)
}
void
-atacreate(Chan *c, char *name, int omode, ulong perm)
+atacreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devconfig.c => pc/devconfig.c +1 -2
@@ 87,9 87,8 @@ configopen(Chan *c, int omode)
}
void
-configcreate(Chan *c, char *name, int omode, ulong perm)
+configcreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devether.c => pc/devether.c +1 -2
@@ 65,9 65,8 @@ etheropen(Chan *c, int omode)
}
void
-ethercreate(Chan *c, char *name, int omode, ulong perm)
+ethercreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
}
void
M pc/devfloppy.c => pc/devfloppy.c +1 -2
@@ 353,9 353,8 @@ floppyopen(Chan *c, int omode)
}
void
-floppycreate(Chan *c, char *name, int omode, ulong perm)
+floppycreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devhard.c => pc/devhard.c +1 -2
@@ 287,9 287,8 @@ hardopen(Chan *c, int omode)
}
void
-hardcreate(Chan *c, char *name, int omode, ulong perm)
+hardcreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devi82365.c => pc/devi82365.c +3 -6
@@ 665,23 665,20 @@ i82365open(Chan *c, int omode)
}
void
-i82365create(Chan *c, char *name, int omode, ulong perm)
+i82365create(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
void
-i82365remove(Chan *c)
+i82365remove(Chan*)
{
- USED(c);
error(Eperm);
}
void
-i82365wstat(Chan *c, char *dp)
+i82365wstat(Chan*, char*)
{
- USED(c, dp);
error(Eperm);
}
M pc/devlpt.c => pc/devlpt.c +1 -2
@@ 124,9 124,8 @@ lptopen(Chan *c, int omode)
}
void
-lptcreate(Chan *c, char *name, int omode, ulong perm)
+lptcreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devrtc.c => pc/devrtc.c +1 -2
@@ 107,9 107,8 @@ rtcopen(Chan *c, int omode)
}
void
-rtccreate(Chan *c, char *name, int omode, ulong perm)
+rtccreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/devvga.c => pc/devvga.c +1 -2
@@ 152,9 152,8 @@ vgaopen(Chan *c, int omode)
}
void
-vgacreate(Chan *c, char *name, int omode, ulong perm)
+vgacreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Eperm);
}
M pc/io.h => pc/io.h +2 -2
@@ 46,8 46,8 @@ enum { /* configuration mechanism #1 */
/* configuration mechanism #2 */
PCIcse = 0xCF8, /* configuration space enable */
PCIforward = 0xCFA, /* which bus */
-
- MaxPCI = 16,
+
+ MaxPCI = 32, /* 16 for mechanism #2 */
};
typedef struct PCIcfg {
M pc/mem.h => pc/mem.h +1 -1
@@ 43,7 43,7 @@
#define UZERO 0 /* base of user address space */
#define UTZERO (UZERO+BY2PG) /* first address in user text */
#define KZERO 0x80000000 /* base of kernel address space */
-#define KTZERO KZERO /* first address in kernel text */
+#define KTZERO 0x80100000 /* first address in kernel text */
#define TSTKTOP 0xC0000000 /* end of new stack in sysexec */
#define TSTKSIZ 10
#define USTKTOP (TSTKTOP-TSTKSIZ*BY2PG) /* byte just beyond user stack */
M pc/pci.c => pc/pci.c +11 -0
@@ 71,6 71,8 @@ pcicfgr(int busno, int devno, int funcno, int regno, void* data, int nbytes)
break;
case 2:
+ if(devno >= 16)
+ break;
outb(PCIcse, 0x80|((funcno & 0x07)<<1));
outb(PCIforward, busno);
@@ 115,6 117,8 @@ pcicfgw(int busno, int devno, int funcno, int regno, void* data, int nbytes)
break;
case 2:
+ if(devno >= 16)
+ break;
outb(PCIcse, 0x80|((funcno & 0x07)<<1));
outb(PCIforward, busno);
@@ 137,7 141,14 @@ pcimatch(int busno, int devno, PCIcfg* pcicfg)
{
ulong l;
+ lock(&pcicfglock);
+ if(pcicfgmode == -1)
+ pcicfginit(busno);
+ unlock(&pcicfglock);
+
while(devno < MaxPCI){
+ if(pcicfgmode == 2 && devno >= 16)
+ break;
l = 0;
pcicfgr(busno, devno, 0, 0, &l, sizeof(ulong));
devno++;
M pc/scsi.c => pc/scsi.c +1 -1
@@ 466,7 466,7 @@ scsibufsize(Target *t, char lun, int size)
}
int
-scsireadcdda(Target *t, char lun, void *b, long n, long bsize, long bno)
+scsireadcdda(Target *t, char lun, int dir, void *b, long n, long bsize, long bno)
{
uchar cmd[10];
int s, nbytes;
M port/devenv.c => port/devenv.c +1 -2
@@ 106,12 106,11 @@ envopen(Chan *c, int omode)
}
void
-envcreate(Chan *c, char *name, int omode, ulong perm)
+envcreate(Chan *c, char *name, int omode, ulong)
{
Egrp *eg;
Evalue *e;
- USED(perm);
if(c->qid.path != CHDIR)
error(Eperm);
M port/devpipe.c => port/devpipe.c +2 -4
@@ 197,16 197,14 @@ pipeopen(Chan *c, int omode)
}
void
-pipecreate(Chan *c, char *name, int omode, ulong perm)
+pipecreate(Chan*, char*, int, ulong)
{
- USED(c, name, omode, perm);
error(Egreg);
}
void
-piperemove(Chan *c)
+piperemove(Chan*)
{
- USED(c);
error(Egreg);
}