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 + -
显示快捷键?