e5cc85fdc4
This single function allows copying file descriptors from and to processes, and closing a previously copied remote file descriptor. This function replaces the five FD-related UDS backcalls. While it limits the total number of in-flight file descriptors to OPEN_MAX, this change greatly improves crash recovery support of UDS, since all in-flight file descriptors will be closed instead of keeping them open indefinitely (causing VFS to crash on system shutdown). With the new copyfd call, UDS becomes simpler, and the concept of filps is no longer exposed outside of VFS. This patch also moves the checkperms(2) stub into libminlib, thus fully abstracting away message details of VFS communication from UDS. Change-Id: Idd32ad390a566143c8ef66955e5ae2c221cff966
710 lines
11 KiB
Text
710 lines
11 KiB
Text
#
|
|
# Boot system services in the boot image
|
|
#
|
|
|
|
service rs
|
|
{
|
|
uid 0;
|
|
ipc ALL; # ALL ipc targets allowed
|
|
system ALL; # ALL kernel calls allowed
|
|
vm # Extra VM calls allowed:
|
|
RS_SET_PRIV # 37
|
|
RS_UPDATE # 41
|
|
RS_MEMCTL # 42
|
|
PROCCTL
|
|
;
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr SELF; # Signal manager is SELF
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 4; # priority queue 4
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service ds
|
|
{
|
|
uid 0;
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system ALL; # ALL kernel calls allowed
|
|
vm BASIC; # Only basic VM calls allowed
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 4; # priority queue 4
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service vm
|
|
{
|
|
uid 0;
|
|
ipc ALL; # ALL ipc targets allowed
|
|
system ALL; # ALL kernel calls allowed
|
|
vm NONE; # No VM calls allowed
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 2; # priority queue 2
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service pm
|
|
{
|
|
uid 0;
|
|
ipc ALL; # ALL ipc targets allowed
|
|
system ALL; # ALL kernel calls allowed
|
|
vm # Extra VM calls allowed:
|
|
EXIT # 00
|
|
FORK # 01
|
|
BRK # 02
|
|
EXEC_NEWMEM # 03
|
|
WILLEXIT # 05
|
|
NOTIFY_SIG # 39
|
|
;
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 4; # priority queue 4
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service sched
|
|
{
|
|
uid 0;
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system ALL; # ALL kernel calls allowed
|
|
vm BASIC; # Only basic VM calls allowed
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 4; # priority queue 4
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service vfs
|
|
{
|
|
uid 0;
|
|
ipc ALL; # ALL ipc targets allowed
|
|
system # Extra kernel calls allowed:
|
|
KILL # 06
|
|
UMAP # 14
|
|
VIRCOPY # 15
|
|
MEMSET
|
|
;
|
|
vm PROCCTL
|
|
VFS_MMAP
|
|
VFS_REPLY
|
|
;
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 5; # priority queue 5
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service mfs
|
|
{
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system BASIC; # Only basic kernel calls allowed
|
|
vm MAPCACHEPAGE SETCACHEPAGE CLEARCACHE;
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler sched; # Scheduler is sched
|
|
priority 5; # priority queue 5
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service ntfs-3g
|
|
{
|
|
uid SELF; # Use uid of user starting service
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system BASIC; # Only basic kernel calls allowed
|
|
vm BASIC; # Only basic VM calls allowed
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler sched; # Scheduler is sched
|
|
priority 5; # priority queue 5
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service ext2
|
|
{
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system BASIC; # Only basic kernel calls allowed
|
|
vm MAPCACHEPAGE SETCACHEPAGE CLEARCACHE;
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler sched; # Scheduler is sched
|
|
priority 5; # priority queue 5
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service pfs
|
|
{
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system BASIC; # Only basic kernel calls allowed
|
|
vm MAPCACHEPAGE SETCACHEPAGE CLEARCACHE;
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler sched; # Scheduler is sched
|
|
priority 5; # priority queue 5
|
|
quantum 500; # default server quantum
|
|
};
|
|
|
|
service tty
|
|
{
|
|
uid 0;
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system # Extra kernel calls allowed:
|
|
KILL # 06
|
|
UMAP # 14
|
|
VIRCOPY # 15
|
|
PHYSCOPY # 16
|
|
IRQCTL # 19
|
|
INT86 # 20
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
VDEVIO # 23
|
|
ABORT # 27
|
|
IOPENABLE # 28
|
|
READBIOS # 35
|
|
;
|
|
vm BASIC; # Only basic VM calls allowed
|
|
io ALL; # ALL I/O ranges allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL (prevents console stalls)
|
|
priority 1; # priority queue 1
|
|
quantum 50; # default driver quantum
|
|
};
|
|
|
|
service memory
|
|
{
|
|
uid 0;
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system # Extra kernel calls allowed:
|
|
UMAP # 14
|
|
VIRCOPY # 15
|
|
PHYSCOPY # 16
|
|
IRQCTL # 19
|
|
INT86 # 20
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
VDEVIO # 23
|
|
IOPENABLE # 28
|
|
;
|
|
vm BASIC; # Only basic VM calls allowed
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQ allowed
|
|
sigmgr rs; # Signal manager is RS
|
|
scheduler KERNEL; # Scheduler is KERNEL
|
|
priority 3; # priority queue 3
|
|
quantum 50; # default driver quantum
|
|
};
|
|
|
|
service log
|
|
{
|
|
ipc SYSTEM vfs rs vm;
|
|
priority 2;
|
|
};
|
|
|
|
service init
|
|
{
|
|
uid 0;
|
|
ipc # ipc targets allowed:
|
|
pm vfs rs vm
|
|
;
|
|
system NONE; # No kernel calls allowed
|
|
vm BASIC; # Only basic VM calls allowed
|
|
io NONE; # No I/O range allowed
|
|
irq NONE; # No IRQs allowed
|
|
sigmgr pm; # Signal manager is PM
|
|
};
|
|
|
|
#
|
|
# Dynamically started system services
|
|
#
|
|
|
|
service floppy
|
|
{
|
|
irq 6;
|
|
io 3f0:8
|
|
0:10 # DMA controller
|
|
81 # Also DMA
|
|
;
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
VDEVIO # 23
|
|
;
|
|
};
|
|
|
|
service dp8390
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
;
|
|
pci device 10ec:8029;
|
|
uid 0;
|
|
};
|
|
|
|
service dpeth
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service inet
|
|
{
|
|
uid 0;
|
|
};
|
|
|
|
service lwip
|
|
{
|
|
uid 0;
|
|
};
|
|
|
|
service random
|
|
{
|
|
};
|
|
|
|
service readclock.drv
|
|
{
|
|
ipc ALL;
|
|
io 70:2;
|
|
system
|
|
PRIVCTL # 4
|
|
UMAP # 14
|
|
VIRCOPY # 15
|
|
DEVIO # 21
|
|
READBIOS # 35
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service is
|
|
{
|
|
vm
|
|
INFO
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service acpi
|
|
{
|
|
io ALL;
|
|
system
|
|
PRIVCTL # 4
|
|
DEVIO # 21
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service pci
|
|
{
|
|
io cf8:8 # PCI bus controller
|
|
4d0:2 # PIIX
|
|
;
|
|
system
|
|
PRIVCTL # 4
|
|
DEVIO # 21
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service ahci
|
|
{
|
|
system
|
|
UMAP # 14
|
|
VUMAP # 18
|
|
IRQCTL # 19
|
|
;
|
|
pci class
|
|
1/6/1 # Mass storage / SATA / AHCI
|
|
;
|
|
};
|
|
|
|
service virtio_blk
|
|
{
|
|
system
|
|
UMAP
|
|
VUMAP
|
|
IRQCTL
|
|
DEVIO
|
|
;
|
|
|
|
pci device 1af4:1001;
|
|
};
|
|
|
|
service 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
|
|
;
|
|
pci class # Match these PCI classes:
|
|
1/1 # Mass storage / IDE
|
|
;
|
|
pci device # In addition, match these devices:
|
|
1106:3149 # VIA VT6420 RAID (1/4)
|
|
1095:3512/1095:6512 # Silicon Image SATA RAID (1/4)
|
|
1095:3114/1095:3114 # Silicon Image SATA RAID (1/80)
|
|
;
|
|
};
|
|
|
|
service procfs
|
|
{
|
|
system
|
|
VIRCOPY # 15
|
|
;
|
|
vm
|
|
INFO
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service isofs
|
|
{
|
|
system
|
|
UMAP # 14
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service hgfs
|
|
{
|
|
ipc
|
|
SYSTEM pm vfs rs vm
|
|
;
|
|
};
|
|
|
|
service vbfs
|
|
{
|
|
ipc
|
|
SYSTEM pm vfs rs ds vm vbox
|
|
;
|
|
};
|
|
|
|
service printer
|
|
{
|
|
io 378:4 # LPT1
|
|
278:4 # LPT2
|
|
;
|
|
irq
|
|
7 # PRINTER_IRQ
|
|
;
|
|
system
|
|
KILL # 6
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
VDEVIO # 23
|
|
READBIOS # 35
|
|
;
|
|
};
|
|
|
|
service orinoco
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
VM_MAP # 30
|
|
;
|
|
pci device 1260:3873;
|
|
pci device 1186:1300;
|
|
uid 0;
|
|
};
|
|
|
|
service es1370
|
|
{
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
;
|
|
pci device 1274:5000;
|
|
};
|
|
|
|
service es1371
|
|
{
|
|
system
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
;
|
|
pci device 1274:1371;
|
|
};
|
|
|
|
service ti1225
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
;
|
|
pci device 104c:ac1c;
|
|
};
|
|
|
|
service amddev
|
|
{
|
|
pci device 1022:1103;
|
|
system
|
|
UMAP_REMOTE # 17
|
|
;
|
|
vm
|
|
ADDDMA # 12
|
|
DELDMA # 13
|
|
GETDMA # 14
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service osscore
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
UMAP # 14
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
;
|
|
pci class
|
|
4/1 # Multimedia / Audio device
|
|
;
|
|
ipc
|
|
SYSTEM pm rs tty ds vfs vm
|
|
pci inet lwip amddev
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service filter
|
|
{
|
|
ipc
|
|
SYSTEM pm vfs rs ds vm
|
|
at_wini
|
|
;
|
|
control
|
|
at_wini
|
|
;
|
|
};
|
|
|
|
service input
|
|
{
|
|
ipc SYSTEM pm vfs rs ds tty vm;
|
|
priority 1;
|
|
};
|
|
|
|
|
|
service pckbd
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
;
|
|
io 60:8; # Keyboard, keyboard command/status
|
|
irq
|
|
1 # Keyboard
|
|
12 # Auxiliary input (mouse)
|
|
;
|
|
ipc SYSTEM pm rs ds vm input;
|
|
priority 1;
|
|
};
|
|
|
|
service hello
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
;
|
|
ipc
|
|
SYSTEM pm rs tty ds vm vfs
|
|
pci inet lwip amddev
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
|
|
service devman
|
|
{
|
|
uid 0;
|
|
};
|
|
|
|
service mmc
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
IRQCTL # 19
|
|
;
|
|
# Interrupts allowed
|
|
irq
|
|
64
|
|
83
|
|
; # IRQs allowed
|
|
priority 4; # priority queue 4
|
|
};
|
|
|
|
service fb
|
|
{
|
|
system
|
|
UMAP # 14
|
|
DEVIO # 21
|
|
PRIVCTL # 4
|
|
;
|
|
ipc
|
|
SYSTEM pm rs ds vm vfs cat24c256 tda19988
|
|
;
|
|
};
|
|
|
|
service gpio
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
IRQCTL # 19
|
|
PADCONF # 57
|
|
;
|
|
irq
|
|
29 # GPIO module 1 (dm37xx)
|
|
30 # GPIO module 2 (dm37xx)
|
|
31 # GPIO module 3 (dm37xx)
|
|
32 # GPIO module 4 (dm37xx) / module 2a (am335x)
|
|
33 # GPIO module 5 (dm37xx) / module 2b (am335x)
|
|
34 # GPIO module 6 (dm37xx)
|
|
62 # GPIO module 3a (am335x)
|
|
63 # GPIO module 3b (am335x)
|
|
96 # GPIO module 0a (am335x)
|
|
97 # GPIO module 0b (am335x)
|
|
98 # GPIO module 1a (am335x)
|
|
99 # GPIO module 1b (am335x)
|
|
;
|
|
|
|
};
|
|
|
|
service i2c
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
IRQCTL # 19
|
|
PADCONF # 57
|
|
;
|
|
irq
|
|
# DM37XX (BeagleBoard-xM)
|
|
56 # I2C module 1
|
|
57 # I2C module 2
|
|
61 # I2C module 3
|
|
# AM335X (BeagleBone)
|
|
70 # I2C module 1
|
|
71 # I2C module 2
|
|
30 # I2C module 3
|
|
;
|
|
ipc SYSTEM RS DS;
|
|
};
|
|
|
|
service cat24c256
|
|
{
|
|
ipc SYSTEM RS DS i2c;
|
|
};
|
|
|
|
service tda19988
|
|
{
|
|
ipc SYSTEM RS DS i2c;
|
|
};
|
|
|
|
service tps65217
|
|
{
|
|
uid 0; # needed for doing reboot(RBT_POWEROFF)
|
|
system IRQCTL PRIVCTL;
|
|
irq 7; # NNMI pin on BeagleBone / BeagleBone Black
|
|
ipc SYSTEM RS DS PM i2c;
|
|
};
|
|
|
|
service tps65950
|
|
{
|
|
ipc SYSTEM RS DS i2c readclock.drv;
|
|
};
|
|
|
|
service tsl2550
|
|
{
|
|
ipc SYSTEM RS DS i2c;
|
|
};
|
|
|
|
service sht21
|
|
{
|
|
ipc SYSTEM RS DS i2c;
|
|
};
|
|
|
|
service bmp085
|
|
{
|
|
ipc SYSTEM RS DS i2c;
|
|
};
|
|
|
|
service vbox
|
|
{
|
|
system
|
|
UMAP # 14
|
|
VUMAP # 18
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
;
|
|
pci device 80ee:cafe;
|
|
ipc
|
|
SYSTEM
|
|
PM
|
|
RS
|
|
VM
|
|
pci
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service fbd
|
|
{
|
|
ipc
|
|
SYSTEM vfs rs ds vm
|
|
ahci
|
|
at_wini
|
|
;
|
|
};
|
|
|
|
service vnd
|
|
{
|
|
ipc
|
|
SYSTEM vfs rs vm
|
|
;
|
|
uid 0; # only for copyfd(2)
|
|
};
|
|
|
|
service uds
|
|
{
|
|
ipc
|
|
SYSTEM vfs rs vm
|
|
;
|
|
uid 0; # only for checkperms(2) and copyfd(2)
|
|
};
|