patch-2.0.31 linux/drivers/isdn/teles/teles.h
Next file: linux/drivers/net/3c509.c
Previous file: linux/drivers/isdn/teles/tei.c
Back to the patch index
Back to the overall index
- Lines: 488
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.0.30/linux/drivers/isdn/teles/teles.h
- Orig date:
Sun Dec 1 10:01:37 1996
diff -u --recursive --new-file v2.0.30/linux/drivers/isdn/teles/teles.h linux/drivers/isdn/teles/teles.h
@@ -1,487 +0,0 @@
-/* $Id: teles.h,v 1.2 1996/04/30 21:52:04 isdn4dev Exp $
- *
- * $Log: teles.h,v $
- * Revision 1.2 1996/04/30 21:52:04 isdn4dev
- * SPV for 1TR6 - Karsten
- *
- * Revision 1.1 1996/04/13 10:29:00 fritz
- * Initial revision
- *
- *
- */
-#include <linux/module.h>
-#include <linux/version.h>
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/major.h>
-#include <asm/segment.h>
-#include <asm/io.h>
-#include <linux/delay.h>
-#include <linux/kernel.h>
-#include <linux/signal.h>
-#include <linux/malloc.h>
-#include <linux/mm.h>
-#include <linux/mman.h>
-#include <linux/ioport.h>
-#include <linux/timer.h>
-#include <linux/wait.h>
-#include <linux/isdnif.h>
-#include <linux/tty.h>
-
-#define PH_ACTIVATE 1
-#define PH_DATA 2
-#define PH_DEACTIVATE 3
-
-#define MDL_ASSIGN 4
-#define DL_UNIT_DATA 5
-#define SC_STARTUP 6
-#define CC_ESTABLISH 7
-#define DL_ESTABLISH 8
-#define DL_DATA 9
-#define CC_S_STATUS_ENQ 10
-
-#define CC_CONNECT 15
-#define CC_CONNECT_ACKNOWLEDGE 16
-#define CO_EOF 17
-#define SC_DISCONNECT 18
-#define CO_DTMF 19
-#define DL_RELEASE 20
-
-#define CO_ALARM 22
-#define CC_REJECT 23
-
-#define CC_SETUP_REQ 24
-#define CC_SETUP_CNF 25
-#define CC_SETUP_IND 26
-#define CC_SETUP_RSP 27
-#define CC_SETUP_COMPLETE_IND 28
-
-#define CC_DISCONNECT_REQ 29
-#define CC_DISCONNECT_IND 30
-
-#define CC_RELEASE_CNF 31
-#define CC_RELEASE_IND 32
-#define CC_RELEASE_REQ 33
-
-#define CC_REJECT_REQ 34
-
-#define CC_PROCEEDING_IND 35
-
-#define CC_DLRL 36
-#define CC_DLEST 37
-
-#define CC_ALERTING_REQ 38
-#define CC_ALERTING_IND 39
-
-#define DL_STOP 40
-#define DL_START 41
-
-#define MDL_NOTEIPROC 46
-
-#define LC_ESTABLISH 47
-#define LC_RELEASE 48
-
-#define PH_REQUEST_PULL 49
-#define PH_PULL_ACK 50
-#define PH_DATA_PULLED 51
-#define CC_INFO_CHARGE 52
-
-/*
- * Message-Types
- */
-
-#define MT_ALERTING 0x01
-#define MT_CALL_PROCEEDING 0x02
-#define MT_CONNECT 0x07
-#define MT_CONNECT_ACKNOWLEDGE 0x0f
-#define MT_PROGRESS 0x03
-#define MT_SETUP 0x05
-#define MT_SETUP_ACKNOWLEDGE 0x0d
-#define MT_RESUME 0x26
-#define MT_RESUME_ACKNOWLEDGE 0x2e
-#define MT_RESUME_REJECT 0x22
-#define MT_SUSPEND 0x25
-#define MT_SUSPEND_ACKNOWLEDGE 0x2d
-#define MT_SUSPEND_REJECT 0x21
-#define MT_USER_INFORMATION 0x20
-#define MT_DISCONNECT 0x45
-#define MT_RELEASE 0x4d
-#define MT_RELEASE_COMPLETE 0x5a
-#define MT_RESTART 0x46
-#define MT_RESTART_ACKNOWLEDGE 0x4e
-#define MT_SEGMENT 0x60
-#define MT_CONGESTION_CONTROL 0x79
-#define MT_INFORMATION 0x7b
-#define MT_FACILITY 0x62
-#define MT_NOTIFY 0x6e
-#define MT_STATUS 0x7d
-#define MT_STATUS_ENQUIRY 0x75
-
-#define IE_CAUSE 0x08
-
-struct HscxIoctlArg {
- int channel;
- int mode;
- int transbufsize;
-};
-
-#ifdef __KERNEL__
-
-#undef DEBUG_MAGIC
-
-#define HSCX_SBUF_ORDER 1
-#define HSCX_SBUF_BPPS 2
-#define HSCX_SBUF_MAXPAGES 3
-
-#define HSCX_RBUF_ORDER 1
-#define HSCX_RBUF_BPPS 2
-#define HSCX_RBUF_MAXPAGES 3
-
-#define HSCX_SMALLBUF_ORDER 0
-#define HSCX_SMALLBUF_BPPS 40
-#define HSCX_SMALLBUF_MAXPAGES 1
-
-#define ISAC_SBUF_ORDER 0
-#define ISAC_SBUF_BPPS 16
-#define ISAC_SBUF_MAXPAGES 1
-
-#define ISAC_RBUF_ORDER 0
-#define ISAC_RBUF_BPPS 16
-#define ISAC_RBUF_MAXPAGES 1
-
-#define ISAC_SMALLBUF_ORDER 0
-#define ISAC_SMALLBUF_BPPS 40
-#define ISAC_SMALLBUF_MAXPAGES 1
-
-#define byte unsigned char
-
-#define MAX_WINDOW 8
-
-byte *Smalloc(int size, int pr, char *why);
-void Sfree(byte * ptr);
-
-/*
- * Statemachine
- */
-struct Fsm {
- int *jumpmatrix;
- int state_count, event_count;
- char **strEvent, **strState;
-};
-
-struct FsmInst {
- struct Fsm *fsm;
- int state;
- int debug;
- void *userdata;
- int userint;
- void (*printdebug) (struct FsmInst *, char *);
-};
-
-struct FsmNode {
- int state, event;
- void (*routine) (struct FsmInst *, int, void *);
-};
-
-struct FsmTimer {
- struct FsmInst *fi;
- struct timer_list tl;
- int event;
- void *arg;
-};
-
-struct BufHeader {
-#ifdef DEBUG_MAGIC
- int magic;
-#endif
- struct BufHeader *next;
- struct BufPool *bp;
- int datasize;
- byte primitive, where;
- void *heldby;
-};
-
-struct Pages {
- struct Pages *next;
-};
-
-struct BufPool {
-#ifdef DEBUG_MAGIC
- int magic;
-#endif
- struct BufHeader *freelist;
- struct Pages *pageslist;
- int pageorder;
- int pagescount;
- int bpps;
- int bufsize;
- int maxpages;
-};
-
-struct BufQueue {
-#ifdef DEBUG_MAGIC
- int magic;
-#endif
- struct BufHeader *head, *tail;
-};
-
-struct Layer1 {
- void *hardware;
- int hscx;
- struct BufPool *sbufpool, *rbufpool, *smallpool;
- struct PStack **stlistp;
- int act_state;
- void (*l1l2) (struct PStack *, int, struct BufHeader *);
- void (*l1man) (struct PStack *, int, void *);
- int hscxmode, hscxchannel, requestpull;
-};
-
-struct Layer2 {
- int sap, tei, ces;
- int extended, laptype;
- int uihsize, ihsize;
- int vs, va, vr;
- struct BufQueue i_queue;
- int window, orig;
- int rejexp;
- int debug;
- struct BufHeader *windowar[MAX_WINDOW];
- int sow;
- struct FsmInst l2m;
- void (*l2l1) (struct PStack *, int, struct BufHeader *);
- void (*l2l1discardq) (struct PStack *, int, void *, int);
- void (*l2man) (struct PStack *, int, void *);
- void (*l2l3) (struct PStack *, int, void *);
- void (*l2tei) (struct PStack *, int, void *);
- struct FsmTimer t200_timer, t203_timer;
- int t200, n200, t203;
- int rc, t200_running;
- char debug_id[32];
-};
-
-struct Layer3 {
- void (*l3l4) (struct PStack *, int, struct BufHeader *);
- void (*l3l2) (struct PStack *, int, void *);
- int state, callref;
- int debug;
-};
-
-struct Layer4 {
- void (*l4l3) (struct PStack *, int, void *);
- void *userdata;
- void (*l1writewakeup) (struct PStack *);
- void (*l2writewakeup) (struct PStack *);
-};
-
-struct Management {
- void (*manl1) (struct PStack *, int, void *);
- void (*manl2) (struct PStack *, int, void *);
- void (*teil2) (struct PStack *, int, void *);
-};
-
-struct Param {
- int cause;
- int bchannel;
- int callref; /* TEI-Number */
- int itc;
- int info; /* Service-Indicator */
- int info2; /* Service-Indicator, second octet */
- char calling[40]; /* Called Id */
- char called[40]; /* Caller Id */
- int chargeinfo; /* Charge Info - only for 1tr6 in
- * the moment
- */
- int spv; /* SPV Flag */
-};
-
-struct PStack {
- struct PStack *next;
- struct Layer1 l1;
- struct Layer2 l2;
- struct Layer3 l3;
- struct Layer4 l4;
- struct Management ma;
- struct Param *pa;
- int protocol; /* EDSS1 or 1TR6 */
-};
-
-struct HscxState {
- byte *membase;
- int iobase;
- int inuse, init, active;
- struct BufPool sbufpool, rbufpool, smallpool;
- struct IsdnCardState *sp;
- int hscx, mode;
- int transbufsize, receive;
- struct BufHeader *rcvibh, *xmtibh;
- int rcvptr, sendptr;
- struct PStack *st;
- struct tq_struct tqueue;
- int event;
- struct BufQueue rq, sq;
- int releasebuf;
-#ifdef DEBUG_MAGIC
- int magic; /* 301270 */
-#endif
-};
-
-struct IsdnCardState {
-#ifdef DEBUG_MAGIC
- int magic;
-#endif
- byte *membase;
- int iobase;
- struct BufPool sbufpool, rbufpool, smallpool;
- struct PStack *stlist;
- struct BufHeader *xmtibh, *rcvibh;
- int rcvptr, sendptr;
- int event;
- struct tq_struct tqueue;
- int ph_active;
- struct BufQueue rq, sq;
-
- int cardnr, ph_state;
- struct PStack *teistack;
- struct HscxState hs[2];
-
- int dlogflag;
- char *dlogspace;
- int debug;
- int releasebuf;
-};
-
-struct IsdnCard {
- byte *membase;
- int interrupt;
- unsigned int iobase;
- int protocol; /* EDSS1 or 1TR6 */
- struct IsdnCardState *sp;
-};
-
-#define DATAPTR(x) ((byte *)x+sizeof(struct BufHeader))
-
-#define LAPD 0
-#define LAPB 1
-
-void BufPoolInit(struct BufPool *bp, int order, int bpps,
- int maxpages);
-int BufPoolAdd(struct BufPool *bp, int priority);
-void BufPoolFree(struct BufPool *bp);
-int BufPoolGet(struct BufHeader **bh,
- struct BufPool *bp, int priority, void *heldby, int where);
-void BufPoolRelease(struct BufHeader *bh);
-void BufQueueLink(struct BufQueue *bq,
- struct BufHeader *bh);
-int BufQueueUnlink(struct BufHeader **bh, struct BufQueue *bq);
-void BufQueueInit(struct BufQueue *bq);
-void BufQueueRelease(struct BufQueue *bq);
-void BufQueueDiscard(struct BufQueue *q, int pr, void *heldby,
- int releasetoo);
-int BufQueueLength(struct BufQueue *bq);
-void BufQueueLinkFront(struct BufQueue *bq,
- struct BufHeader *bh);
-
-void l2down(struct PStack *st,
- byte pr, struct BufHeader *ibh);
-void l2up(struct PStack *st,
- byte pr, struct BufHeader *ibh);
-void acceptph(struct PStack *st,
- struct BufHeader *ibh);
-void setstack_isdnl2(struct PStack *st, char *debug_id);
-int teles_inithardware(void);
-void teles_closehardware(void);
-
-void setstack_teles(struct PStack *st, struct IsdnCardState *sp);
-unsigned int randomces(void);
-void setstack_isdnl3(struct PStack *st);
-void teles_addlist(struct IsdnCardState *sp,
- struct PStack *st);
-void releasestack_isdnl2(struct PStack *st);
-void teles_rmlist(struct IsdnCardState *sp,
- struct PStack *st);
-void newcallref(struct PStack *st);
-
-int ll_init(void);
-void ll_stop(void), ll_unload(void);
-int setstack_hscx(struct PStack *st, struct HscxState *hs);
-void modehscx(struct HscxState *hs, int mode, int ichan);
-byte *findie(byte * p, int size, byte ie, int wanted_set);
-int getcallref(byte * p);
-
-void FsmNew(struct Fsm *fsm,
- struct FsmNode *fnlist, int fncount);
-void FsmFree(struct Fsm *fsm);
-int FsmEvent(struct FsmInst *fi,
- int event, void *arg);
-void FsmChangeState(struct FsmInst *fi,
- int newstate);
-void FsmInitTimer(struct FsmInst *fi, struct FsmTimer *ft);
-int FsmAddTimer(struct FsmTimer *ft,
- int millisec, int event, void *arg, int where);
-void FsmDelTimer(struct FsmTimer *ft, int where);
-int FsmTimerRunning(struct FsmTimer *ft);
-void jiftime(char *s, long mark);
-
-void CallcNew(void);
-void CallcFree(void);
-int CallcNewChan(void);
-void CallcFreeChan(void);
-int teles_command(isdn_ctrl * ic);
-int teles_writebuf(int id, int chan, const u_char * buf, int count, int user);
-void teles_putstatus(char *buf);
-void teles_reportcard(int cardnr);
-int ListLength(struct BufHeader *ibh);
-void dlogframe(struct IsdnCardState *sp, byte * p, int size, char *comment);
-void iecpy(byte * dest, byte * iestart, int ieoffset);
-void setstack_transl2(struct PStack *st);
-void releasestack_transl2(struct PStack *st);
-void close_hscxstate(struct HscxState *);
-void setstack_tei(struct PStack *st);
-
-struct LcFsm {
- struct FsmInst lcfi;
- int type;
- struct Channel *ch;
- void (*lccall) (struct LcFsm *, int, void *);
- struct PStack *st;
- int l2_establish;
- int l2_start;
- struct FsmTimer act_timer;
- char debug_id[32];
-};
-
-struct Channel {
- struct PStack ds, is;
- struct IsdnCardState *sp;
- int hscx;
- int chan;
- int incoming;
- struct FsmInst fi;
- struct LcFsm lc_d, lc_b;
- struct Param para;
- int debug;
-#ifdef DEBUG_MAGIC
- int magic; /* 301272 */
-#endif
- int l2_protocol, l2_active_protocol;
- int l2_primitive, l2_headersize;
- int data_open;
- int outcallref;
- int impair;
-};
-
-#define PART_SIZE(order,bpps) (( (PAGE_SIZE<<order) -\
- sizeof(void *))/bpps)
-#define BUFFER_SIZE(order,bpps) (PART_SIZE(order,bpps)-\
- sizeof(struct BufHeader))
-
-#endif
-
-void Isdnl2New(void);
-void Isdnl2Free(void);
-void TeiNew(void);
-void TeiFree(void);
-
-
-
-
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov