minix/etc/system.conf
David van Moolenbroek 6b3f4dc157 Input infrastructure, INPUT server, PCKBD driver
This commit separates the low-level keyboard driver from TTY, putting
it in a separate driver (PCKBD). The commit also separates management
of raw input devices from TTY, and puts it in a separate server
(INPUT). All keyboard and mouse input from hardware is sent by drivers
to the INPUT server, which either sends it to a process that has
opened a raw input device, or otherwise forwards it to TTY for
standard processing.

Design by Dirk Vogt. Prototype by Uli Kastlunger.

Additional changes made to the prototype:

- the event communication is now based on USB HID codes; all input
  drivers have to use USB codes to describe events;
- all TTY keymaps have been converted to USB format, with the effect
  that a single keymap covers all keys; there is no (static) escaped
  keymap anymore;
- further keymap tweaks now allow remapping of literally all keys;
- input device renumbering and protocol rewrite;
- INPUT server rewrite, with added support for cancel and select;
- PCKBD reimplementation, including PC/AT-to-USB translation;
- support for manipulating keyboard LEDs has been added;
- keyboard and mouse multiplexer devices have been added to INPUT,
  primarily so that an X server need only open two devices;
- a new "libinputdriver" library abstracts away protocol details from
  input drivers, and should be used by all future input drivers;
- both INPUT and PCKBD can be restarted;
- TTY is now scheduled by KERNEL, so that it won't be punished for
  running a lot; without this, simply running "yes" on the console
  kills the system;
- the KIOCBELL IOCTL has been moved to /dev/console;
- support for the SCANCODES termios setting has been removed;
- obsolete keymap compression has been removed;
- the obsolete Olivetti M24 keymap has been removed.

Change-Id: I3a672fb8c4fd566734e4b46d3994b4b7fc96d578
2014-03-01 09:04:55 +01:00

700 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
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 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 dupfrom(2)
};