📄 cat.c
字号:
#/* *//* * GP DR11C driver used for C/A/T */#include "../param.h"#include "../user.h"#include "../tty.h"#define CATADDR 0167750#define PCAT 9#define CATHIWAT 60#define CATLOWAT 15struct { int catlock; struct clist oq;} cat;struct { int catcsr; int catbuf;};ctopen(dev){ if (cat.catlock==0) { cat.catlock++; CATADDR->catcsr =| IENABLE; } else u.u_error = ENXIO;}ctclose(){ cat.catlock = 0;}ctwrite(dev){ register c; extern lbolt; while ((c=cpass()) >= 0) { spl5(); while (cat.oq.c_cc > CATHIWAT) sleep(&cat.oq, PCAT); while (putc(c, &cat.oq) < 0) sleep(&lbolt, PCAT); catintr(); spl0(); }}catintr(){ register int c; if (CATADDR->catcsr&DONE && (c=getc(&cat.oq))>=0) { CATADDR->catbuf = c; if (cat.oq.c_cc==0 || cat.oq.c_cc==CATLOWAT) wakeup(&cat.oq); } else { if (cat.catlock==0) CATADDR->catcsr = 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -