Coherent4.2.10/include/sys/devices.h

/* (-lgl
 *	Coherent 386 release 4.2
 *	Copyright (c) 1982, 1993 by Mark Williams Company.
 *	All rights reserved. May not be copied without permission.
 *	For copying permission and licensing info, write licensing@mwc.com
 -lgl) */

#ifndef	__SYS_DEVICES_H__
#define	__SYS_DEVICES_H__

/* Device major numbers. */
#define	MEM_MAJOR	0	/* memory				*/
#define	TTY_MAJOR	1	/* tty					*/
#define	KB_MAJOR	2	/* keyboard and video			*/
#define	MM_MAJOR	2	/* keyboard and video, same as KB_MAJOR	*/
#define	LP_MAJOR	3	/* parallel line printer		*/
#define	FL_MAJOR	4	/* floppy disk				*/
#define	ASY_MAJOR	5	/* async devices 0..31			*/
#define	AL0_MAJOR	5	/* serial line 0, COM[13]		*/
#define	AL1_MAJOR	6	/* serial line 1, COM[24]		*/
#define	TRACE_MAJOR	6	/* kernel trace device			*/
#define	HS_MAJOR	7	/* polled multi-port serial card	*/
#define	RM_MAJOR	8	/* dual RAM disk			*/
#define	PTY_MAJOR	9	/* pseudotty				*/
#define	MS_MAJOR	10	/* Microsoft mouse			*/
#define	AT_MAJOR	11	/* AT-type hard disk			*/
#define	ST_MAJOR	12	/* archive streaming tape		*/
#define	SCSI_MAJOR	13	/* SCSI					*/
/*			14	   currently unassigned			*/
/*			15	may be used for bitmapped device	*/
/*			16	   currently unassigned			*/
/*			17	   currently unassigned			*/
/*			18	   currently unassigned			*/
/*			19	   currently unassigned			*/
#define	TN_MAJOR	20	/* Tiac PC-234/6 ARCNET LAN		*/
#define	PE_MAJOR	21	/* Emulex/Persyst fast serial (DCP/MUX)	*/
#define	SBP_MAJOR	21	/* Sound Blaster Pro			*/
/*			22	   currently unassigned			*/
#define	SEM_MAJOR	23	/* S-V compatible semaphores		*/
#define	SHM_MAJOR	24	/* S-V subset shared memory		*/
#define	MSG_MAJOR	25	/* S-V compatible messaging		*/
/*			26	may be used for socket driver		*/
/*			27	   currently unassigned			*/
/*			28	   currently unassigned			*/
/*			29	   currently unassigned			*/
#define	GR_MAJOR	30	/* IBM Color card 640x200 graphics	*/
/*			31	   currently unassigned			*/

/* Selected minor numbers. */
#define	AT0X_MINOR	128	/* /dev/at0x				*/
#define	AT1X_MINOR	129	/* /dev/at1x				*/
#define	SCSI_minor(s, i, l, p)	((s)*0x80 + (i)*0x10 + (l)*0x04 + (p))

/*
 * Some devices need special pools of memory, too large for kmem_alloc ()
 * to be practical.  Reserve 4 megabytes of virtual space for each major
 * number for such pools.  The first 4 Mb of virtual space beneath
 * DEVICE_SEG_END is for major number 0, the second is for major number 1,
 * etc.
 */

#define DEVICE_SEG_END	0xF0000000

#define DEVICE_SEG_VADDR(major)	((caddr_t)(DEVICE_SEG_END - \
	  ((major + 1) * (4 * 1024 * 1024))))

#endif	/* ! defined (__SYS_DEVICES_H__) */