scc.h
001:
002:
003: #ifndef _SCC_H
004: #define _SCC_H
005:
006:
007:
008:
009: #define PA0HZP 0x00
010: #define EAGLE 0x01
011: #define PC100 0x02
012: #define PRIMUS 0x04
013: #define DRSI 0x08
014: #define BAYCOM 0x10
015:
016:
017:
018: enum SCC_ioctl_cmds {
019: SIOCSCCRESERVED = SIOCDEVPRIVATE,
020: SIOCSCCCFG,
021: SIOCSCCINI,
022: SIOCSCCCHANINI,
023: SIOCSCCSMEM,
024: SIOCSCCGKISS,
025: SIOCSCCSKISS,
026: SIOCSCCGSTAT,
027: SIOCSCCCAL
028: };
029:
030:
031:
032: enum L1_params {
033: PARAM_DATA,
034: PARAM_TXDELAY,
035: PARAM_PERSIST,
036: PARAM_SLOTTIME,
037: PARAM_TXTAIL,
038: PARAM_FULLDUP,
039: PARAM_SOFTDCD,
040: PARAM_MUTE,
041: PARAM_DTR,
042: PARAM_RTS,
043: PARAM_SPEED,
044: PARAM_ENDDELAY,
045: PARAM_GROUP,
046: PARAM_IDLE,
047: PARAM_MIN,
048: PARAM_MAXKEY,
049: PARAM_WAIT,
050: PARAM_MAXDEFER,
051: PARAM_TX,
052: PARAM_HWEVENT = 31,
053: PARAM_RETURN = 255
054: };
055:
056:
057:
058: enum FULLDUP_modes {
059: KISS_DUPLEX_HALF,
060: KISS_DUPLEX_FULL,
061: KISS_DUPLEX_LINK,
062: KISS_DUPLEX_OPTIMA
063: };
064:
065:
066:
067: #define TIMER_OFF 65535U
068: #define NO_SUCH_PARAM 65534U
069:
070:
071:
072: enum HWEVENT_opts {
073: HWEV_DCD_ON,
074: HWEV_DCD_OFF,
075: HWEV_ALL_SENT
076: };
077:
078:
079:
080: #define RXGROUP 0100
081: #define TXGROUP 0200
082:
083:
084:
085: enum CLOCK_sources {
086: CLK_DPLL,
087: CLK_EXTERNAL,
088: CLK_DIVIDER,
089:
090: CLK_BRG
091:
092: };
093:
094:
095:
096: enum TX_state {
097: TXS_IDLE,
098: TXS_BUSY,
099: TXS_ACTIVE,
100: TXS_NEWFRAME,
101: TXS_IDLE2,
102: TXS_WAIT,
103: TXS_TIMEOUT
104: };
105:
106: typedef unsigned long io_port;
107:
108:
109:
110: struct scc_stat {
111: long rxints;
112: long txints;
113: long exints;
114: long spints;
115:
116: long txframes;
117: long rxframes;
118: long rxerrs;
119: long txerrs;
120:
121: unsigned int nospace;
122: unsigned int rx_over;
123: unsigned int tx_under;
124:
125: unsigned int tx_state;
126: int tx_queued;
127:
128: unsigned int maxqueue;
129: unsigned int bufsize;
130: };
131:
132: struct scc_modem {
133: long speed;
134: char clocksrc;
135: char nrz;
136: };
137:
138: struct scc_kiss_cmd {
139: int command;
140: unsigned param;
141: };
142:
143: struct scc_hw_config {
144: io_port data_a;
145: io_port ctrl_a;
146: io_port data_b;
147: io_port ctrl_b;
148: io_port vector_latch;
149: io_port special;
150:
151: int irq;
152: long clock;
153: char option;
154:
155: char brand;
156: char escc;
157: };
158:
159:
160:
161:
162: struct scc_mem_config {
163: unsigned int dummy;
164: unsigned int bufsize;
165: };
166:
167: struct scc_calibrate {
168: unsigned int time;
169: unsigned char pattern;
170: };
171:
172: #endif
173:
© Andrew Scott 2006 -
2025,
All Rights Reserved