]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * Linux driver for HYSDN cards | |
3 | * common definitions for both sides of the bus: | |
4 | * - conventions both spoolers must know | |
5 | * - channel numbers agreed upon | |
6 | * | |
7 | * Author M. Steinkopf | |
8 | * Copyright 1999 by M. Steinkopf | |
9 | * | |
10 | * This software may be used and distributed according to the terms | |
11 | * of the GNU General Public License, incorporated herein by reference. | |
12 | * | |
13 | */ | |
14 | ||
15 | #ifndef __INCE1PC_H__ | |
16 | #define __INCE1PC_H__ | |
17 | ||
18 | /* basic scalar definitions have same meanning, | |
19 | * but their declaration location depends on environment | |
20 | */ | |
21 | ||
22 | /*--------------------------------------channel numbers---------------------*/ | |
23 | #define CHAN_SYSTEM 0x0001 /* system channel (spooler to spooler) */ | |
24 | #define CHAN_ERRLOG 0x0005 /* error logger */ | |
25 | #define CHAN_CAPI 0x0064 /* CAPI interface */ | |
26 | #define CHAN_NDIS_DATA 0x1001 /* NDIS data transfer */ | |
27 | ||
28 | /*--------------------------------------POF ready msg-----------------------*/ | |
29 | /* NOTE: after booting POF sends system ready message to PC: */ | |
30 | #define RDY_MAGIC 0x52535953UL /* 'SYSR' reversed */ | |
31 | #define RDY_MAGIC_SIZE 4 /* size in bytes */ | |
32 | ||
33 | #define MAX_N_TOK_BYTES 255 | |
34 | ||
35 | #define MIN_RDY_MSG_SIZE RDY_MAGIC_SIZE | |
36 | #define MAX_RDY_MSG_SIZE (RDY_MAGIC_SIZE+MAX_N_TOK_BYTES) | |
37 | ||
38 | #define SYSR_TOK_END 0 | |
39 | #define SYSR_TOK_B_CHAN 1 /* nr. of B-Channels; DataLen=1; def: 2 */ | |
40 | #define SYSR_TOK_FAX_CHAN 2 /* nr. of FAX Channels; DataLen=1; def: 0 */ | |
41 | #define SYSR_TOK_MAC_ADDR 3 /* MAC-Address; DataLen=6; def: auto */ | |
42 | #define SYSR_TOK_ESC 255 /* undefined data size yet */ | |
43 | /* default values, if not corrected by token: */ | |
44 | #define SYSR_TOK_B_CHAN_DEF 2 /* assume 2 B-Channels */ | |
45 | #define SYSR_TOK_FAX_CHAN_DEF 1 /* assume 1 FAX Channel */ | |
46 | ||
47 | /* syntax of new SYSR token stream: | |
48 | * channel: CHAN_SYSTEM | |
49 | * msgsize: MIN_RDY_MSG_SIZE <= x <= MAX_RDY_MSG_SIZE | |
50 | * RDY_MAGIC_SIZE <= x <= (RDY_MAGIC_SIZE+MAX_N_TOK_BYTES) | |
51 | * msg : 0 1 2 3 {4 5 6 ..} | |
52 | * S Y S R MAX_N_TOK_BYTES bytes of TokenStream | |
53 | * | |
54 | * TokenStream := empty | |
55 | * | {NonEndTokenChunk} EndToken RotlCRC | |
56 | * NonEndTokenChunk:= NonEndTokenId DataLen [Data] | |
57 | * NonEndTokenId := 0x01 .. 0xFE 1 BYTE | |
58 | * DataLen := 0x00 .. 0xFF 1 BYTE | |
59 | * Data := DataLen bytes | |
60 | * EndToken := 0x00 | |
61 | * RotlCRC := special 1 byte CRC over all NonEndTokenChunk bytes | |
62 | * s. RotlCRC algorithm | |
63 | * | |
64 | * RotlCRC algorithm: | |
c721bcce | 65 | * ucSum= 0 1 unsigned char |
1da177e4 LT |
66 | * for all NonEndTokenChunk bytes: |
67 | * ROTL(ucSum,1) rotate left by 1 | |
68 | * ucSum += Char; add current byte with swap around | |
69 | * RotlCRC= ~ucSum; invert all bits for result | |
70 | * | |
71 | * note: | |
72 | * - for 16-bit FIFO add padding 0 byte to achieve even token data bytes! | |
73 | */ | |
74 | ||
75 | /*--------------------------------------error logger------------------------*/ | |
76 | /* note: pof needs final 0 ! */ | |
77 | #define ERRLOG_CMD_REQ "ERRLOG ON" | |
78 | #define ERRLOG_CMD_REQ_SIZE 10 /* with final 0 byte ! */ | |
79 | #define ERRLOG_CMD_STOP "ERRLOG OFF" | |
80 | #define ERRLOG_CMD_STOP_SIZE 11 /* with final 0 byte ! */ | |
81 | ||
82 | #define ERRLOG_ENTRY_SIZE 64 /* sizeof(tErrLogEntry) */ | |
83 | /* remaining text size = 55 */ | |
84 | #define ERRLOG_TEXT_SIZE (ERRLOG_ENTRY_SIZE-2*4-1) | |
85 | ||
86 | typedef struct ErrLogEntry_tag { | |
87 | ||
c721bcce | 88 | /*00 */ unsigned long ulErrType; |
1da177e4 | 89 | |
c721bcce | 90 | /*04 */ unsigned long ulErrSubtype; |
1da177e4 | 91 | |
c721bcce | 92 | /*08 */ unsigned char ucTextSize; |
1da177e4 | 93 | |
c721bcce | 94 | /*09 */ unsigned char ucText[ERRLOG_TEXT_SIZE]; |
1da177e4 LT |
95 | /* ASCIIZ of len ucTextSize-1 */ |
96 | ||
97 | /*40 */ | |
98 | } tErrLogEntry; | |
99 | ||
100 | ||
101 | #if defined(__TURBOC__) | |
102 | #if sizeof(tErrLogEntry) != ERRLOG_ENTRY_SIZE | |
103 | #error size of tErrLogEntry != ERRLOG_ENTRY_SIZE | |
104 | #endif /* */ | |
105 | #endif /* */ | |
106 | ||
107 | /*--------------------------------------DPRAM boot spooler------------------*/ | |
108 | /* this is the struture used between pc and | |
109 | * hyperstone to exchange boot data | |
110 | */ | |
111 | #define DPRAM_SPOOLER_DATA_SIZE 0x20 | |
112 | typedef struct DpramBootSpooler_tag { | |
113 | ||
c721bcce | 114 | /*00 */ unsigned char Len; |
1da177e4 | 115 | |
c721bcce | 116 | /*01 */ volatile unsigned char RdPtr; |
1da177e4 | 117 | |
c721bcce | 118 | /*02 */ unsigned char WrPtr; |
1da177e4 | 119 | |
c721bcce | 120 | /*03 */ unsigned char Data[DPRAM_SPOOLER_DATA_SIZE]; |
1da177e4 LT |
121 | |
122 | /*23 */ | |
123 | } tDpramBootSpooler; | |
124 | ||
125 | ||
126 | #define DPRAM_SPOOLER_MIN_SIZE 5 /* Len+RdPtr+Wrptr+2*data */ | |
127 | #define DPRAM_SPOOLER_DEF_SIZE 0x23 /* current default size */ | |
128 | ||
129 | /*--------------------------------------HYCARD/ERGO DPRAM SoftUart----------*/ | |
130 | /* at DPRAM offset 0x1C00: */ | |
131 | #define SIZE_RSV_SOFT_UART 0x1B0 /* 432 bytes reserved for SoftUart */ | |
132 | ||
133 | ||
134 | #endif /* __INCE1PC_H__ */ |