snoop.h revision 35256
1/* 2 * Copyright (c) 1995 Ugen J.S.Antsilevich 3 * 4 * Redistribution and use in source forms, with and without modification, 5 * are permitted provided that this entire comment appears intact. 6 * 7 * Redistribution in binary form may occur without any restrictions. 8 * Obviously, it would be nice if you gave credit where credit is due 9 * but requiring it would be too onerous. 10 * 11 * This software is provided ``AS IS'' without any warranties of any kind. 12 * 13 * Snoop stuff. 14 */ 15 16#ifndef _SYS_SNOOP_H_ 17#define _SYS_SNOOP_H_ 18 19#ifndef KERNEL 20#include <sys/types.h> 21#endif 22#include <sys/ioccom.h> 23 24#ifdef KERNEL 25#define SNOOP_MINLEN (4*1024) /* This should be power of 2. 26 * 4K tested to be the minimum 27 * for which on normal tty 28 * usage there is no need to 29 * allocate more. 30 */ 31#define SNOOP_MAXLEN (64*1024) /* This one also,64K enough 32 * If we grow more,something 33 * really bad in this world.. 34 */ 35 36/* 37 * This is the main snoop per-device 38 * structure... 39 */ 40 41struct snoop { 42 dev_t snp_target; /* major/minor number of device*/ 43 struct tty *snp_tty; /* tty device pointer */ 44 u_long snp_len; /* buffer data length */ 45 u_long snp_base; /* buffer data base */ 46 u_long snp_blen; /* Overall buffer len */ 47 caddr_t snp_buf; /* Data buffer */ 48 int snp_flags; /* Flags place */ 49#define SNOOP_ASYNC 0x0002 50#define SNOOP_OPEN 0x0004 51#define SNOOP_RWAIT 0x0008 52#define SNOOP_OFLOW 0x0010 53#define SNOOP_DOWN 0x0020 54 struct selinfo snp_sel; /* Selection info */ 55}; 56 57/* XXX several wrong storage classes and types here. */ 58int snpdown __P((struct snoop *snp)); 59int snpin __P((struct snoop *snp, char *buf, int n)); 60int snpinc __P((struct snoop *snp, char c)); 61#endif /* KERNEL */ 62 63/* 64 * Theese are snoop io controls 65 * SNPSTTY accepts 'struct snptty' as input. 66 * If ever type or unit set to -1,snoop device 67 * detached from its current tty. 68 */ 69 70#define SNPSTTY _IOW('T', 90, dev_t) 71#define SNPGTTY _IOR('T', 89, dev_t) 72 73/* 74 * Theese values would be returned by FIONREAD ioctl 75 * instead of number of characters in buffer in case 76 * of specific errors. 77 */ 78#define SNP_OFLOW -1 79#define SNP_TTYCLOSE -2 80#define SNP_DETACH -3 81 82#endif /* !_SYS_SNOOP_H_ */ 83