minix/etc/drivers.conf
David van Moolenbroek b8b8f537bd IPC privileges fixes
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
2009-07-02 16:25:31 +00:00

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;
};