OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [isdn/] [eicon/] [idi.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * External IDI interface
3
 *
4
 * Copyright (C) Eicon Technology Corporation, 2000.
5
 *
6
 * Eicon File Revision :    1.0
7
 *
8
 * This software may be used and distributed according to the terms
9
 * of the GNU General Public License, incorporated herein by reference.
10
 *
11
 */
12
 
13
#if !defined(IDI_H)
14
#define IDI_H
15
 
16
#include "sys.h"
17
 
18
/* typedefs for our data structures */
19
 
20
typedef struct get_name_s GET_NAME;
21
typedef struct entity_s ENTITY;
22
typedef struct buffers_s BUFFERS;
23
 
24
/* IDI request/callback function pointer */
25
 
26
typedef void (* IDI_CALL)(ENTITY *);
27
 
28
typedef struct {
29
  word length;          /* length of data/parameter field           */
30
  byte P[270];          /* data/parameter field                     */
31
} DBUFFER;
32
 
33
#define REQ_NAME        0x0100
34
#define BOARD_NAME_LENGTH 9
35
struct get_name_s {
36
  word command;         /* command = 0x0100 */
37
  byte name[BOARD_NAME_LENGTH];
38
};
39
 
40
#define REQ_REMOVE    0x0000    /* pointer to word which is 0 */
41
#define REQ_SERIAL    0x0200  
42
struct get_serial_s {
43
  word      command;            /* command = 0x0200 */
44
  dword     serial;             /* serial number */
45
};
46
 
47
#define REQ_POSTCALL  0x0300  
48
struct postcall_s {
49
  word        command;         /* command = 0x0300 */
50
  word        dummy;           /* not used */
51
  IDI_CALL    callback;        /* routine address to call back */
52
  ENTITY      *contxt;         /* ptr to entity to use */
53
};
54
 
55
#define REQ_XLOG      0x0400   /* structure is card dependent/defined locally */
56
 
57
struct buffers_s {
58
  word PLength;
59
  byte *P;
60
};
61
 
62
struct entity_s {
63
  byte                  Req;            /* pending request          */
64
  byte                  Rc;             /* return code received     */
65
  byte                  Ind;            /* indication received      */
66
  byte                  ReqCh;          /* channel of current Req   */
67
  byte                  RcCh;           /* channel of current Rc    */
68
  byte                  IndCh;          /* channel of current Ind   */
69
  byte                  Id;             /* ID used by this entity   */
70
  byte                  GlobalId;       /* reserved field           */
71
  byte                  XNum;           /* number of X-buffers      */
72
  byte                  RNum;           /* number of R-buffers      */
73
  BUFFERS               *X;                     /* pointer to X-buffer list */
74
  BUFFERS               *R;                     /* pointer to R-buffer list */
75
  word                  RLength;        /* length of current R-data */
76
  DBUFFER               *RBuffer;       /* buffer of current R-data */
77
  byte                  RNR;            /* receive not ready flag   */
78
  byte                  complete;       /* receive complete status  */
79
  IDI_CALL              callback;
80
 
81
  word                  user[2];
82
 
83
        /* fields used by the driver internally                     */
84
  byte                  No;             /* entity number            */
85
  byte                  reserved2;      /* reserved field           */
86
  byte                  More;           /* R/X More flags           */
87
  byte                  MInd;           /* MDATA coding for this ID */
88
  byte                  XCurrent;       /* current transmit buffer  */
89
  byte                  RCurrent;       /* current receive buffer   */
90
  word                  XOffset;        /* offset in x-buffer       */
91
  word                  ROffset;        /* offset in r-buffer       */
92
};
93
 
94
typedef struct {
95
  byte                  type;
96
  byte                  channels;
97
  word                  features;
98
  /* dword              serial; */
99
  IDI_CALL              request;
100
} DESCRIPTOR;
101
 
102
extern void    DIVA_DIDD_Read(DESCRIPTOR *, int);
103
 
104
        /* descriptor type field coding */
105
#define IDI_ADAPTER_S           1
106
#define IDI_ADAPTER_PR          2
107
#define IDI_ADAPTER_DIVA        3
108
#define IDI_ADAPTER_MAESTRA     4
109
#define IDI_ADAPTER_MAESTRAQ    5
110
#define IDI_ADAPTER_MAESTRAP    6
111
#define IDI_VADAPTER            0x40
112
#define IDI_DRIVER              0x80
113
#define IDI_DIMAINT             0xff
114
 
115
/* feature bit mask values */
116
 
117
#define DI_VOICE        0x0 /* obsolete define */
118
#define DI_FAX3         0x1
119
#define DI_MODEM        0x2
120
#define DI_POST         0x4
121
#define DI_V110         0x8
122
#define DI_V120         0x10
123
#define DI_POTS         0x20
124
#define DI_CODEC        0x40
125
#define DI_MANAGE       0x80
126
#define DI_V_42         0x0100
127
#define DI_EXTD_FAX     0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */
128
 
129
#endif /* IDI_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.