#
# 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
		;
	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;		# ALL 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
		PUSH_SIG	# 04
		WILLEXIT	# 05
		ADDDMA		# 12
		DELDMA		# 13
		GETDMA		# 14
		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;		# ALL 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
		;
	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	 5;	# priority queue 5
	quantum	       500;	# default server quantum
};

service mfs
{
	uid     0;
	ipc	ALL;		# ALL 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 pfs
{
	uid     0;
	ipc	ALL;		# ALL 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 tty
{
	uid     0;
	ipc	ALL;		# ALL ipc targets allowed
	system			# Extra kernel calls allowed:
		KILL		# 06
		SEGCTL		# 12
		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;		# ALL ipc targets allowed
	system			# Extra kernel calls allowed:
		SEGCTL		# 12
		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;		# ALL ipc targets allowed
	system			# Extra kernel calls allowed:
		SEGCTL		# 12
		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 lance
{
	system
		UMAP		# 14
		IRQCTL		# 19
		DEVIO		# 21
	;
	pci device	1022/2000;
	uid	0;
};

service rtl8139
{
	system
		UMAP		# 14
		IRQCTL		# 19
		DEVIO		# 21
	;
	pci device	10ec/8139;
	pci device	02ac/1012;
	pci device	1065/8139;
	pci device	1113/1211;
	pci device	1186/1300;
	pci device	1186/1340;
	pci device	11db/1234;
	pci device	1259/a117;
	pci device	1259/a11e;
	pci device	126c/1211;
	pci device	13d1/ab06;
	pci device	1432/9130;
	pci device	14ea/ab06;
	pci device	14ea/ab07;
	pci device	1500/1360;
	pci device	1743/8139;
	pci device	4033/1360;
	ipc
		SYSTEM pm rs log tty ds vm
		pci inet amddev
		;
};

service fxp
{
	system
		UMAP		# 14
		IRQCTL		# 19
		DEVIO		# 21
	;
	pci device	8086/103d;
	pci device	8086/1064;
	pci device	8086/1229;
	pci device	8086/2449;
	ipc
		SYSTEM pm rs log tty ds vm
		pci inet amddev
		;
};

service inet
{
	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 pci
{
	io	cf8:8		# PCI bus controller
		4d0:2		# PIIX
	;
	system
		PRIVCTL		#  4
		DEVIO		# 21
	;
	uid 0;
};

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 bios_wini
{
	system
		UMAP		# 14
		INT86		# 20
		READBIOS	# 35
	;
};

service isofs
{
	system
		UMAP            # 14
		;
	uid	0;
};

service hgfs
{
	ipc
		SYSTEM pm vfs rs vm
	;
};

service printer
{
       io      378:4           # LPT1
               278:4           # LPT2
       ;
       irq
               7               # PRINTER_IRQ
       ;
       system
		KILL            #  6
		UMAP            # 14
		VIRCOPY         # 15
		IRQCTL          # 19
		DEVIO           # 21
		VDEVIO          # 23
       ;
};

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 amddev
{
	pci device	1022/1103;
	system
		UMAP		# 14
	;
	uid	0;
};

service ipc
{
	system
		UMAP		# 14
		VIRCOPY         # 15
		;
	uid     0;
	ipc
		SYSTEM USER pm rs log tty ds vm
		;
	vm
		REMAP
		SHM_UNMAP
		GETPHYS
		GETREF
		QUERY_EXIT
		;
};

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 amddev 
		;
	uid     0;
};

service rtl8169
{
	system
		UMAP		# 14
		IRQCTL		# 19
		DEVIO		# 21
	;
	pci device	10ec/8129;
	pci device	10ec/8167;
	pci device	10ec/8169;
	pci device	10ec/8168;
	pci device	1186/4300;
	pci device	1259/c107;
	pci device	1385/8169;
	pci device	16ec/0116;
	pci device	1737/1032;
	ipc
		SYSTEM pm rs log tty ds vm
		pci inet amddev
		;
};

service filter
{
	ipc
		SYSTEM pm vfs rs ds vm
		at_wini
		bios_wini
	;
	control
		at_wini
		bios_wini
	;
};

service e1000
{
	system
		UMAP		# 14
		IRQCTL		# 19
		DEVIO		# 21
	;
	pci device	8086/100e;
	pci device	8086/107c;
	pci device	8086/10cd;
	ipc
		SYSTEM pm rs log tty ds vm
		pci inet ;
};

service atl2
{
	system
		UMAP		# 14
		IRQCTL		# 19
	;
	pci device	1969/2048;
	ipc
		SYSTEM pm rs tty ds vm
		pci inet
	;
};

service dec21140A
{
	system
		UMAP		# 14
		IRQCTL		# 19
		DEVIO		# 21
	;
	pci device	1011/0009;
	ipc
		SYSTEM pm rs log tty ds vm
		pci inet
		;
};

service hello
{
        system
                IRQCTL          # 19
                DEVIO           # 21
        ;
        ipc
                SYSTEM pm rs log tty ds vm vfs
                pci inet amddev
                ;
    uid 0;
};

