1/* 2 * CAPI encode/decode prototypes and defines 3 * 4 * Copyright (C) 1996 Universidade de Lisboa 5 * 6 * Written by Pedro Roque Marques (roque@di.fc.ul.pt) 7 * 8 * This software may be used and distributed according to the terms of 9 * the GNU General Public License, incorporated herein by reference. 10 */ 11 12#ifndef CAPI_H 13#define CAPI_H 14 15 16#define REQ_CAUSE 0x01 17#define REQ_DISPLAY 0x04 18#define REQ_USER_TO_USER 0x08 19 20#define AppInfoMask REQ_CAUSE | REQ_DISPLAY | REQ_USER_TO_USER 21 22/* Connection Setup */ 23extern int capi_conn_req(const char *calledPN, struct sk_buff **buf, 24 int proto); 25extern int capi_decode_conn_conf(struct pcbit_chan *chan, struct sk_buff *skb, 26 int *complete); 27 28extern int capi_decode_conn_ind(struct pcbit_chan *chan, struct sk_buff *skb, 29 struct callb_data *info); 30extern int capi_conn_resp(struct pcbit_chan *chan, struct sk_buff **skb); 31 32extern int capi_conn_active_req(struct pcbit_chan *chan, struct sk_buff **skb); 33extern int capi_decode_conn_actv_conf(struct pcbit_chan *chan, 34 struct sk_buff *skb); 35 36extern int capi_decode_conn_actv_ind(struct pcbit_chan *chan, 37 struct sk_buff *skb); 38extern int capi_conn_active_resp(struct pcbit_chan *chan, 39 struct sk_buff **skb); 40 41/* Data */ 42extern int capi_select_proto_req(struct pcbit_chan *chan, struct sk_buff **skb, 43 int outgoing); 44extern int capi_decode_sel_proto_conf(struct pcbit_chan *chan, 45 struct sk_buff *skb); 46 47extern int capi_activate_transp_req(struct pcbit_chan *chan, 48 struct sk_buff **skb); 49extern int capi_decode_actv_trans_conf(struct pcbit_chan *chan, 50 struct sk_buff *skb); 51 52extern int capi_tdata_req(struct pcbit_chan *chan, struct sk_buff *skb); 53extern int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff **skb); 54 55/* Connection Termination */ 56extern int capi_disc_req(ushort callref, struct sk_buff **skb, u_char cause); 57 58extern int capi_decode_disc_ind(struct pcbit_chan *chan, struct sk_buff *skb); 59extern int capi_disc_resp(struct pcbit_chan *chan, struct sk_buff **skb); 60 61#ifdef DEBUG 62extern int capi_decode_debug_188(u_char *hdr, ushort hdrlen); 63#endif 64 65static inline struct pcbit_chan * 66capi_channel(struct pcbit_dev *dev, struct sk_buff *skb) 67{ 68 ushort callref; 69 70 callref = *((ushort *)skb->data); 71 skb_pull(skb, 2); 72 73 if (dev->b1->callref == callref) 74 return dev->b1; 75 else if (dev->b2->callref == callref) 76 return dev->b2; 77 78 return NULL; 79} 80 81#endif 82