Kernel: o Remove s_ipc_sendrec, instead using s_ipc_to for all send primitives o Centralize s_ipc_to bit manipulation, - disallowing assignment of bits pointing to unused priv structs; - preventing send-to-self by not setting bit for own priv struct; - preserving send mask matrix symmetry in all cases o Add IPC send mask checks to SENDA, which were missing entirely somehow o Slightly improve IPC stats accounting for SENDA o Remove SYSTEM from user processes' send mask o Half-fix the dependency between boot image order and process numbers, - correcting the table order of the boot processes; - documenting the order requirement needed for proper send masks; - warning at boot time if the order is violated RS: o Add support in /etc/drivers.conf for servers that talk to user processes, - disallowing IPC to user processes if no "ipc" field is present - adding a special "USER" label to explicitly allow IPC to user processes o Always apply IPC masks when specified; remove -i flag from service(8) o Use kernel send mask symmetry to delay adding IPC permissions for labels that do not exist yet, adding them to that label's process upon creation o Add VM to ipc permissions list for rtl8139 and fxp in drivers.conf Left to future fixes: o Removal of the table order vs process numbers dependency altogether, possibly using per-process send list structures as used for SYSTEM calls o Proper assignment of send masks to boot processes; some of the assigned (~0) masks are much wider than necessary o Proper assignment of IPC send masks for many more servers in drivers.conf o Removal of the debugging warning about the now legitimate case where RS's add_forward_ipc cannot find the IPC destination's label yet
353 lines
4.4 KiB
Plaintext
353 lines
4.4 KiB
Plaintext
driver floppy
|
|
{
|
|
irq 6;
|
|
io 3f0:8
|
|
0:10 # XXX DMA controller
|
|
81 # Also DMA
|
|
;
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
VDEVIO # 23
|
|
SETALARM # 24
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
};
|
|
|
|
driver dp8390
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
SETALARM # 24
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 10ec/8029;
|
|
uid 0;
|
|
};
|
|
|
|
driver dpeth
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
SETALARM # 24
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
driver lance
|
|
{
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
#SDEVIO # 22
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 1022/2000;
|
|
uid 0;
|
|
};
|
|
|
|
driver rtl8139
|
|
{
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
#SDEVIO # 22
|
|
SETALARM # 24
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
MAPDMA # 41
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 10ec/8139;
|
|
ipc
|
|
SYSTEM PM RS LOG TTY DS VM
|
|
pci inet amddev
|
|
;
|
|
};
|
|
|
|
driver fxp
|
|
{
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
#SDEVIO # 22
|
|
SETALARM # 24
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 8086/1229;
|
|
ipc
|
|
SYSTEM PM RS LOG TTY DS VM
|
|
pci inet amddev
|
|
;
|
|
};
|
|
|
|
driver dumpcore
|
|
{
|
|
system
|
|
TRACE # 5
|
|
VIRCOPY # 15
|
|
GETINFO # 26
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
};
|
|
|
|
driver inet
|
|
{
|
|
system
|
|
SETALARM # 24
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
VSAFECOPY # 33
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
driver random
|
|
{
|
|
system
|
|
UMAP # 14
|
|
SETALARM # 24
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
};
|
|
|
|
driver readclock.drv
|
|
{
|
|
io 70:2;
|
|
system
|
|
DEVIO # 21
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYTO # 32
|
|
SAFECOPYFROM # 32
|
|
SETGRANT # 34
|
|
READBIOS # 35
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
driver is
|
|
{
|
|
system
|
|
GETINFO # 26
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
driver pci
|
|
{
|
|
io cf8:8 # PCI bus controller
|
|
4d0:2 # PIIX
|
|
;
|
|
system
|
|
PRIVCTL # 4
|
|
DEVIO # 21
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
driver at_wini
|
|
{
|
|
io 1f0:8 # Controller 0
|
|
3f6 # Also controller 0
|
|
170:8 # Controller 1
|
|
376 # Also controller 1
|
|
;
|
|
irq
|
|
14 # Controller 0
|
|
15 # Controller 1
|
|
;
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
VDEVIO # 23
|
|
SETALARM # 24
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
READBIOS # 35
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci class
|
|
1/1 # Mass storage / IDE
|
|
1/4 # Mass storage / RAID
|
|
;
|
|
};
|
|
|
|
driver mfs
|
|
{
|
|
system
|
|
TIMES # 25
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
GETINFO
|
|
SETGRANT # 34
|
|
UMAP # 14
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
driver printer
|
|
{
|
|
io 378:4 # LPT1
|
|
278:4 # LPT2
|
|
;
|
|
irq
|
|
7 # PRINTER_IRQ
|
|
;
|
|
system
|
|
KILL # 6
|
|
SETGRANT # 34
|
|
UMAP # 14
|
|
VIRCOPY # 15
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
VDEVIO # 23
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
};
|
|
|
|
driver orinoco
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
DEVIO # 21
|
|
GETINFO # 26
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
#SDEVIO # 22
|
|
SETALARM # 24
|
|
TIMES # 25
|
|
GETINFO # 26
|
|
SAFECOPYFROM # 31
|
|
SAFECOPYTO # 32
|
|
SETGRANT # 34
|
|
VM_MAP # 30
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 1260/3873;
|
|
uid 0;
|
|
};
|
|
|
|
driver es1370
|
|
{
|
|
system
|
|
SAFECOPYFROM
|
|
SAFECOPYTO
|
|
UMAP
|
|
GETINFO
|
|
SETGRANT
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 1274/5000;
|
|
};
|
|
|
|
driver es1371
|
|
{
|
|
system
|
|
SAFECOPYFROM
|
|
SAFECOPYTO
|
|
UMAP
|
|
SETGRANT
|
|
GETINFO
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
pci device 1274/1371;
|
|
};
|
|
|
|
driver amddev
|
|
{
|
|
pci device 1022/1103;
|
|
system
|
|
UMAP # 14
|
|
SETGRANT # 34
|
|
GETINFO
|
|
REGDEV # 40
|
|
PROFBUF # 38
|
|
SYSCTL
|
|
;
|
|
uid 0;
|
|
};
|