60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| minix/rs.h
 | |
| 
 | |
| Interface to the reincarnation server
 | |
| */
 | |
| 
 | |
| #define RSS_NR_IRQ		16
 | |
| #define RSS_NR_IO		16
 | |
| #define RSS_NR_PCI_ID		16
 | |
| #define RSS_NR_PCI_CLASS	 4
 | |
| #define RSS_NR_SYSTEM		 2
 | |
| 
 | |
| /* Arguments needed to start a new driver or server */
 | |
| struct rs_start
 | |
| {
 | |
| 	unsigned rss_flags;
 | |
| 	char *rss_cmd;
 | |
| 	size_t rss_cmdlen;
 | |
| 	uid_t rss_uid;
 | |
| 	int rss_nice;
 | |
| 	int rss_major;
 | |
| 	long rss_period;
 | |
| 	char *rss_script;
 | |
| 	size_t rss_scriptlen;
 | |
| 	int rss_nr_irq;
 | |
| 	int rss_irq[RSS_NR_IRQ];
 | |
| 	int rss_nr_io;
 | |
| 	struct { unsigned base; unsigned len; } rss_io[RSS_NR_IO];
 | |
| 	int rss_nr_pci_id;
 | |
| 	struct { u16_t vid; u16_t did; } rss_pci_id[RSS_NR_PCI_ID];
 | |
| 	int rss_nr_pci_class;
 | |
| 	struct { u32_t class; u32_t mask; } rss_pci_class[RSS_NR_PCI_CLASS];
 | |
| 	u32_t rss_system[RSS_NR_SYSTEM];
 | |
| 	char *rss_label;
 | |
| 	size_t rss_labellen;
 | |
| 	char *rss_ipc;
 | |
| 	size_t rss_ipclen;
 | |
| };
 | |
| 
 | |
| #define RF_COPY		0x01	/* Copy the brinary into RS to make it possible
 | |
| 				 * to restart the driver without accessing FS
 | |
| 				 */
 | |
| #define RF_IPC_VALID	0x02	/* rss_ipc and rss_ipclen are valid */
 | |
| 
 | |
| #define RSP_LABEL_SIZE	16
 | |
| #define RSP_NR_DEVICE	16
 | |
| #define RSP_NR_CLASS	 4
 | |
| 
 | |
| /* ACL information for access to PCI devices */
 | |
| struct rs_pci
 | |
| {
 | |
| 	char rsp_label[RSP_LABEL_SIZE];		/* Name of the driver */
 | |
| 	int rsp_endpoint;
 | |
| 	int rsp_nr_device;
 | |
| 	struct { u16_t vid; u16_t did; } rsp_device[RSP_NR_DEVICE];
 | |
| 	int rsp_nr_class;
 | |
| 	struct { u32_t class; u32_t mask; } rsp_class[RSP_NR_CLASS];
 | |
| };
 | |
| 
 | 
