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