linux/drivers/isdn/pcbit/capi.h
<<
>>
Prefs
   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