33a7ac7557
. libc: add vfs_mmap, a way for vfs to initiate mmap()s. This is a good special case to have as vfs is a slightly different client from regular user processes. It doesn't do it for itself, and has the dev & inode info already so the callback to VFS for the lookup isn't necessary. So it has different info to have to give to VM. . libc: also add minix_mmap64() that accepts a 64-bit offset, even though our off_t is still 32 bit now. . On exec() time, try to mmap() in the executable if available. (It is not yet available in this commit.) . To support mmap(), add do_vm_call that allows VM to lookup (to ino+dev), do i/o from and close FD's on behalf of other processes. Change-Id: I831551e45a6781c74313c450eb9c967a68505932
618 lines
9.6 KiB
Text
618 lines
9.6 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;
|
|
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;
|
|
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;
|
|
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;
|
|
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 sched; # Scheduler is sched
|
|
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
|
|
{
|
|
uid 0;
|
|
ipc ALL_SYS; # All system ipc targets allowed
|
|
system # Extra kernel calls allowed:
|
|
UMAP # 14
|
|
VIRCOPY # 15
|
|
IRQCTL # 19
|
|
INT86 # 20
|
|
DEVIO # 21
|
|
SDEVIO # 22
|
|
VDEVIO # 23
|
|
;
|
|
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 2; # priority queue 2
|
|
quantum 50; # default driver quantum
|
|
};
|
|
|
|
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
|
|
{
|
|
io 70:2;
|
|
system
|
|
UMAP # 14
|
|
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
|
|
READBIOS # 35
|
|
;
|
|
pci class
|
|
1/1 # Mass storage / IDE
|
|
1/80 # Mass storage / Other (80 hex)
|
|
1/4 # Mass storage / RAID
|
|
;
|
|
};
|
|
|
|
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 log tty ds vfs vm
|
|
pci inet lwip amddev
|
|
;
|
|
uid 0;
|
|
};
|
|
|
|
service filter
|
|
{
|
|
ipc
|
|
SYSTEM pm vfs rs ds vm
|
|
at_wini
|
|
bios_wini
|
|
;
|
|
control
|
|
at_wini
|
|
bios_wini
|
|
;
|
|
};
|
|
|
|
service hello
|
|
{
|
|
system
|
|
IRQCTL # 19
|
|
DEVIO # 21
|
|
;
|
|
ipc
|
|
SYSTEM pm rs log 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
|
|
};
|
|
|
|
service fb
|
|
{
|
|
system
|
|
UMAP # 14
|
|
DEVIO # 21
|
|
PRIVCTL # 4
|
|
;
|
|
ipc
|
|
SYSTEM pm rs ds vm vfs
|
|
;
|
|
};
|
|
|
|
service gpio
|
|
{
|
|
system
|
|
PRIVCTL # 4
|
|
IRQCTL # 19
|
|
;
|
|
irq
|
|
29 # GPIO module 1
|
|
30 # GPIO module 2
|
|
31 # GPIO module 3
|
|
32 # GPIO module 4
|
|
33 # GPIO module 5
|
|
34 # GPIO module 6
|
|
;
|
|
|
|
};
|
|
|
|
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
|
|
bios_wini
|
|
;
|
|
};
|