conf.h

来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 557 行 · 第 1/2 页

H
557
字号
	dev_init(c,n,open), dev_init(c,n,close), (dev_type_read((*))) enodev, \	(dev_type_write((*))) enodev, dev_init(c,n,ioctl), \	(dev_type_stop((*))) enodev, 0, (dev_type_poll((*))) enodev, \	(dev_type_mmap((*))) enodev }#define	cdev_lkm_init(c,n)	cdev__oci_init(c,n)#define	cdev_uk_init(c,n)	cdev__oci_init(c,n)#define	cdev_scsibus_init(c,n)	cdev__oci_init(c,n)#define	cdev_se_init(c,n)	cdev__oci_init(c,n)#define	cdev_ses_init(c,n)	cdev__oci_init(c,n)#define	cdev_sysmon_init(c,n)	cdev__oci_init(c,n)#define	cdev_openfirm_init(c,n)	cdev__oci_init(c,n)#define	cdev_usb_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	(dev_type_write((*))) enodev, dev_init(c,n,ioctl), \	(dev_type_stop((*))) enodev, 0, dev_init(c,n,poll), \	(dev_type_mmap((*))) enodev }/* open, close, read, write, ioctl, poll */#define cdev__ocrwip_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	dev_init(c,n,write), dev_init(c,n,ioctl), \	(dev_type_stop((*))) enodev, 0, dev_init(c,n,poll), \	(dev_type_mmap((*))) enodev }#define cdev_rnd_init(c,n)	cdev__ocrwip_init(c,n)#define	cdev_usbdev_init(c,n)	cdev__ocrwip_init(c,n)#define	cdev_ugen_init(c,n)	cdev__ocrwip_init(c,n)/* open, close, ioctl, poll, mmap */#define	cdev_fb_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), (dev_type_read((*))) enodev, \	(dev_type_write((*))) enodev, dev_init(c,n,ioctl), \	(dev_type_stop((*))) enodev, 0, dev_init(c,n,poll), \	dev_init(c,n,mmap) }/* open, close, read, write, ioctl, poll, mmap */#define cdev_audio_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) enodev, \	0, dev_init(c,n,poll), dev_init(c,n,mmap) }/* open, close, read, write, ioctl, poll */#define cdev_midi_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) enodev, \	0, dev_init(c,n,poll), (dev_type_mmap((*))) enodev }/* open, close, read, ioctl */#define cdev_ipf_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	(dev_type_write((*))) enodev, dev_init(c,n,ioctl), \	(dev_type_stop((*))) nullop, 0, (dev_type_poll((*))) enodev, \	(dev_type_mmap((*))) enodev }/* open */#define	cdev_svr4_net_init(c,n) { \	dev_init(c,n,open), (dev_type_close((*))) enodev, \	(dev_type_read((*))) enodev, (dev_type_write((*))) enodev, \	(dev_type_ioctl((*))) enodev, (dev_type_stop((*))) nullop, \	0, (dev_type_poll((*))) enodev, (dev_type_mmap((*))) enodev }/* open, close, read, write, ioctl, stop, tty, poll, mmap */#define cdev_wsdisplay_init(c,n) { \        dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \        dev_init(c,n,write), dev_init(c,n,ioctl), dev_init(c,n,stop), \        dev_init(c,n,tty), ttpoll, dev_init(c,n,mmap), D_TTY }/* open, close, write, ioctl */#define	cdev_spkr_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), (dev_type_read((*))) enodev, \	dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) enodev, \	0, seltrue, (dev_type_mmap((*))) enodev }/* open, close, read, write, ioctl, select */#define cdev_vc_nb_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	dev_init(c,n,write), dev_init(c,n,ioctl),  \	(dev_type_stop((*))) nullop, 0, dev_init(c,n,poll), \	(dev_type_mmap((*))) enodev }/* open, close, read, write, ioctl, stop, poll */#define	cdev_esh_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	dev_init(c,n,write), dev_init(c,n,ioctl), dev_init(c,n,stop), \	0, dev_init(c,n,poll), (dev_type_mmap((*))) enodev, 0 }/* open, close, read, ioctl, mmap */#define cdev_bktr_init(c,n) { \	dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \	(dev_type_write((*))) enodev, dev_init(c,n,ioctl), \	(dev_type_stop((*))) enodev, 0, seltrue, \	(dev_init(c,n,mmap)) }/* symbolic sleep message strings */extern	const char devopn[], devio[], devwait[], devin[], devout[];extern	const char devioc[], devcls[];#endif /* _KERNEL *//* * Line discipline switch table */struct linesw {	char	*l_name;	/* Linesw name */	int	l_no;		/* Linesw number (compatibility) */	int	(*l_open)	__P((dev_t dev, struct tty *tp));	int	(*l_close)	__P((struct tty *tp, int flags));	int	(*l_read)	__P((struct tty *tp, struct uio *uio,				     int flag));	int	(*l_write)	__P((struct tty *tp, struct uio *uio,				     int flag));	int	(*l_ioctl)	__P((struct tty *tp, u_long cmd, caddr_t data,				     int flag, struct proc *p));	int	(*l_rint)	__P((int c, struct tty *tp));	int	(*l_start)	__P((struct tty *tp));	int	(*l_modem)	__P((struct tty *tp, int flag));};#ifdef _KERNELextern struct linesw **linesw;extern int nlinesw;extern void ttyldisc_init __P((void));int ttyldisc_add __P((struct linesw *disc, int no));struct linesw *ttyldisc_remove __P((char *name));struct linesw *ttyldisc_lookup __P((char *name));/* For those defining their own line disciplines: */#define	ttynodisc ((int (*) __P((dev_t, struct tty *)))enodev)#define	ttyerrclose ((int (*) __P((struct tty *, int flags)))enodev)#define	ttyerrio ((int (*) __P((struct tty *, struct uio *, int)))enodev)#define	ttyerrinput ((int (*) __P((int c, struct tty *)))enodev)#define	ttyerrstart ((int (*) __P((struct tty *)))enodev)int	nullioctl __P((struct tty *, u_long, caddr_t, int, struct proc *));#endif/* * Swap device table */struct swdevt {	dev_t	sw_dev;	int	sw_flags;	int	sw_nblks;	struct	vnode *sw_vp;};#define	SW_FREED	0x01#define	SW_SEQUENTIAL	0x02#define	sw_freed	sw_flags	/* XXX compat */#ifdef _KERNELextern struct swdevt swdevt[];dev_t	chrtoblk __P((dev_t));int	iskmemdev __P((dev_t));int	iszerodev __P((dev_t));/* * [bc]dev_decl()s for 'fake' tty devices. */cdev_decl(cn);cdev_decl(ctty);#define	ptctty		ptytty#define	ptcioctl	ptyioctlcdev_decl(ptc);#define	ptstty		ptytty#define	ptsioctl	ptyioctlcdev_decl(pts);/* * [bc]dev_decl()s for 'fake' disk devices. */bdev_decl(ccd);cdev_decl(ccd);bdev_decl(md);cdev_decl(md);bdev_decl(raid);cdev_decl(raid);bdev_decl(vnd);cdev_decl(vnd);/* * [bc]dev_decl()s for SCSI devices. */bdev_decl(cd);cdev_decl(cd);cdev_decl(ch);bdev_decl(sd);cdev_decl(sd);/* XXX Namespace collissions with SYSVSEM; just declare what we need. */dev_decl(se,open); dev_decl(se,close); dev_decl(se,ioctl);bdev_decl(st);cdev_decl(st);bdev_decl(ss);cdev_decl(ss);bdev_decl(uk);cdev_decl(uk);/* * [bc]dev_decl()s for logical disks. */bdev_decl(ld);cdev_decl(ld);/* * cdev_decl()s for Brooktree 8[47][89] based TV cards. */cdev_decl(bktr);/* * [bc]dev_decl()s for 'fake' network devices. */cdev_decl(bpf);cdev_decl(ipl);#ifdef COMPAT_SVR4# define NSVR4_NET	1#else# define NSVR4_NET	0#endifcdev_decl(svr4_net);cdev_decl(tun);/* * [bc]dev_decl()s for miscellaneous 'fake' devices.  */cdev_decl(audio);cdev_decl(midi);cdev_decl(sequencer);cdev_decl(filedesc);#ifndef LKM# define	NLKM	0#else# define	NLKM	1#endifcdev_decl(lkm);cdev_decl(log);cdev_decl(rnd);#endif /* _KERNEL *//* * Used by setroot() to map device names to bdev major numbers. * Ports declare a NULL-terminated array of these structures * to setroot(). */struct devnametobdevmaj {	const char *d_name;	int	d_maj;};#ifdef _KERNELextern	struct devnametobdevmaj dev_name2blk[];struct	device;void	setroot __P((struct device *, int));void	swapconf __P((void));#endif /* _KERNEL */#endif /* !_SYS_CONF_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?