📄 conf.c
字号:
seltrue, (dev_type_map((*))) enodev, \ 0 }#include "ms.h"#define msmap msmmapcdev_decl(ms);/* open, close, read, write, ioctl, select */#define cdev_ms_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, \ (dev_type_reset((*))) nullop, 0, seltrue, (dev_type_map((*))) enodev, \ 0 }#include "fb.h"cdev_decl(fb);/* open, close, ioctl, 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, \ (dev_type_reset((*))) nullop, 0, seltrue, (dev_type_map((*))) enodev, 0 }/* (dev_type_reset((*))) nullop, 0, seltrue, dev_init(c,n,map), 0 }*/#include "st.h"cdev_decl(st);#include "lb.h"cdev_decl(lbp);#include "ir.h"cdev_decl(ir);/* open, close, read, ioctl */#define cdev_ir_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, (dev_type_reset((*))) nullop, 0, \ seltrue, (dev_type_map((*))) enodev, 0 }cdev_decl(log);/* open, close, read, ioctl, select -- XXX should be a generic device */#define cdev_log_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, (dev_type_reset((*))) nullop, 0, \ dev_init(c,n,select), (dev_type_map((*))) enodev, 0 }dev_type_open(fdopen);/* open */#define cdev_fd_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((*))) enodev, \ (dev_type_reset((*))) enodev, 0, (dev_type_select((*))) enodev, \ (dev_type_map((*))) enodev, 0 }cdev_decl(vn);/* open, read, write, ioctl -- XXX should be a disk */#define cdev_vn_init(c,n) { \ dev_init(c,n,open), (dev_type_close((*))) nullop, dev_init(c,n,read), \ dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) enodev, \ (dev_type_reset((*))) nullop, 0, seltrue, (dev_type_map((*))) enodev, \ 0 }#include "bpfilter.h"cdev_decl(bpf);/* open, close, read, write, ioctl, select -- XXX should be generic device */#define cdev_bpf_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, \ (dev_type_reset((*))) enodev, 0, dev_init(c,n,select), \ (dev_type_map((*))) enodev, 0 }struct cdevsw cdevsw[] ={ cdev_vc_init(1,vc), /* 0: virtual console */ cdev_tty_init(NRS,rs), /* 1: rs232c */ cdev_ctty_init(1,ctty), /* 2: controlling terminal */ cdev_mm_init(1,mm), /* 3: /dev/{null,mem,kmem,...} */ cdev_disk_init(NSD,sd_c_), /* 4: scsi disk */ cdev_disk_init(NFD,fd_c_), /* 5: floppy disk */ cdev_disk_init(NLP,lp), /* 6: printer */ cdev_swap_init(1,sw), /* 7: /dev/drum (swap pseudo-device) */ cdev_tty_init(NPTY,pts), /* 8: pseudo-tty slave */ cdev_ptc_init(NPTY,ptc), /* 9: pseudo-tty master */ cdev_notdef(), /* 10: md (sony memory disk) */ cdev_kb_init(NKB,kb), /* 11: keyboard */ cdev_ms_init(NMS,ms), /* 12: mouse */ cdev_fd_init(1,fd), /* 13: file descriptor pseudo-dev */ cdev_fb_init(NFB,fb), /* 14: frame buffer */ cdev_vn_init(NVN,vn), /* 15: vnode disk */ cdev_tape_init(NST,st), /* 16: scsi tape */ cdev_kb_init(NLB,lbp), /* 17: lbp */ cdev_ir_init(NIR,ir), /* 18: image reader */ cdev_notdef(), /* 19: vme */ cdev_notdef(), /* 20: gpib */ cdev_notdef(), /* 21: rd */ cdev_tty_init(NBM,cn), /* 22: console display device */ cdev_notdef(), /* 23: ether */ cdev_bpf_init(NBPFILTER,bpf), /* 24: berkeley packet filter */ cdev_notdef(), /* 25 */ cdev_notdef(), /* 26 */ cdev_notdef(), /* 27 */ cdev_notdef(), /* 28: scsi */ cdev_notdef(), /* 29: sony shm */ cdev_notdef(), /* 30: sony semaphoe? */ cdev_notdef(), /* 31: vvcrs */ cdev_notdef(), /* 32: fddi */ cdev_log_init(1,log), /* 33: /dev/klog */ cdev_notdef(), /* 34: image board */ cdev_notdef(), /* 35: sb? */ cdev_notdef(), /* 36: sbe? */ cdev_notdef(), /* 37: vd (safs) */ cdev_notdef(), /* 38: xd (safs) */ cdev_notdef(), /* 39: isdn */ cdev_notdef(), /* 40: rb */ cdev_notdef(), /* 41: gs */ cdev_notdef(), /* 42: rx */};int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);int mem_no = 2; /* major device number of memory special file *//* * Swapdev is a fake device implemented * in sw.c used only internally to get to swstrategy. * It cannot be provided to the users, because the * swstrategy routine munches the b_dev and b_blkno entries * before calling the appropriate driver. This would horribly * confuse, e.g. the hashing routines. Instead, /dev/drum is * provided as a character (raw) device. */dev_t swapdev = makedev(1, 0);/* * Routine that identifies /dev/mem and /dev/kmem. * * A minimal stub routine can always return 0. */iskmemdev(dev) dev_t dev;{ if (major(dev) == 3 && (minor(dev) == 0 || minor(dev) == 1)) return (1); return (0);}iszerodev(dev) dev_t dev;{ return (major(dev) == 3 && minor(dev) == 12);}/* * Routine to determine if a device is a disk. * * A minimal stub routine can always return 0. */isdisk(dev, type) dev_t dev; int type;{ switch (major(dev)) { case 0: case 3: if (type == VBLK) return (1); return (0); case 4: case 15: if (type == VCHR) return (1); /* FALLTHROUGH */ default: return (0); } /* NOTREACHED */}#define MAXDEV 43static int chrtoblktbl[MAXDEV] = { /* VCHR */ /* VBLK */ /* 0 */ NODEV, /* 1 */ NODEV, /* 2 */ NODEV, /* 3 */ NODEV, /* 4 */ 0, /* 5 */ NODEV, /* 6 */ NODEV, /* 7 */ NODEV, /* 8 */ NODEV, /* 9 */ NODEV, /* 10 */ NODEV, /* 11 */ NODEV, /* 12 */ NODEV, /* 13 */ NODEV, /* 14 */ NODEV, /* 15 */ 3, /* 16 */ NODEV, /* 17 */ NODEV, /* 18 */ NODEV, /* 19 */ NODEV, /* 20 */ NODEV, /* 21 */ NODEV, /* 22 */ NODEV, /* 23 */ NODEV, /* 24 */ NODEV, /* 25 */ NODEV, /* 26 */ NODEV, /* 27 */ NODEV, /* 28 */ NODEV, /* 29 */ NODEV, /* 30 */ NODEV, /* 31 */ NODEV, /* 32 */ NODEV, /* 33 */ NODEV, /* 34 */ NODEV, /* 35 */ NODEV, /* 36 */ NODEV, /* 37 */ NODEV, /* 38 */ NODEV, /* 39 */ NODEV, /* 40 */ NODEV, /* 41 */ NODEV, /* 42 */ NODEV,};/* * Routine to convert from character to block device number. * * A minimal stub routine can always return NODEV. */chrtoblk(dev) dev_t dev;{ int blkmaj; if (major(dev) >= MAXDEV || (blkmaj = chrtoblktbl[major(dev)]) == NODEV) return (NODEV); return (makedev(blkmaj, minor(dev)));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -