|
|
1.1 ! root 1: #ifndef GSCI_DOT_H ! 2: #define GSCI_DOT_H ! 3: ! 4: /* ! 5: * GSCI.H 5.20A June 8, 1995 ! 6: * ! 7: * The Greenleaf Comm Library ! 8: * ! 9: * Copyright (C) 1984-1995 Greenleaf Software Inc. All Rights Reserved. ! 10: * ! 11: * NOTES ! 12: * ! 13: * This file contains all the structure definitions and function ! 14: * prototypes needed by user modules that are going to access GSCI ! 15: * Level 1 functions. ! 16: * ! 17: * MODIFICATIONS ! 18: * ! 19: * December 12, 1992 4.00A : Initial release ! 20: * ! 21: */ ! 22: #include "commlib.h" ! 23: ! 24: #define MAX_PORT 35 ! 25: #define MAX_BUF_SIZE 65535U ! 26: #define MIN_BUF_SIZE 2 ! 27: ! 28: /* ! 29: * port operating modes ! 30: */ ! 31: #define ASIN 1 ! 32: #define ASOUT 2 ! 33: #define ASINOUT 3 ! 34: #define BINARY 0 ! 35: #define ASCII 4 ! 36: #define NORMALRX 0 ! 37: #define WIDETRACKRX 128 ! 38: ! 39: /* ! 40: *Parity types ! 41: */ ! 42: #define P_NONE 0 ! 43: #define P_ODD 1 ! 44: #define P_EVEN 2 ! 45: #define P_S_STICK 3 ! 46: #define P_M_STICK 4 ! 47: ! 48: ! 49: ! 50: /* ! 51: * Error masks for widetrack rx buffer ! 52: */ ! 53: #define OVERRUN_ERR 2 ! 54: #define PARITY_ERR 4 ! 55: #define FRAMING_ERR 8 ! 56: #define CTS_STATE 16 ! 57: #define DSR_STATE 32 ! 58: #define RI_STATE 64 ! 59: #define CD_STATE 128 ! 60: ! 61: /* ! 62: * Argument values for asicheck() ! 63: */ ! 64: #define ALERT_FLAG_STOPS_RX_AND_TX 1 ! 65: #define CTS_LOW_STOPS_TX_INTERRUPTS 2 ! 66: #define DSR_LOW_DISCARDS_RX_DATA 4 ! 67: #define CD_LOW_DISCARDS_RX_DATA 8 ! 68: #define MODEM_STATUS_CHANGES_SET_ALERT 16 ! 69: #define LINE_STATUS_ERRORS_SET_ALERT 32 ! 70: ! 71: /* ! 72: * For asirchk() ! 73: */ ! 74: #define CHKDISABLE 0 ! 75: #define CHKDISCARD 1 ! 76: #define CHKFLAGDISCARD 2 ! 77: #define CHKFLAG 3 ! 78: #define CHKRESET 4 ! 79: ! 80: /* ! 81: *Define status modes for all those is...() functions ! 82: */ ! 83: #define IMMEDIATE 0 ! 84: #define CUMULATIVE 1 ! 85: ! 86: /* ! 87: *Buffer Flags (Masks) ! 88: */ ! 89: #define ALERT 1 ! 90: #define RXEMPTY 2 ! 91: #define RXFULL 4 ! 92: #define RXOVFLOW 8 ! 93: #define TXEMPTY 16 ! 94: #define TXFULL 32 ! 95: #define LINERR 64 ! 96: #define MODCHG 128 ! 97: ! 98: /* ! 99: * Names used as parameters passed to asicheck() ! 100: */ ! 101: ! 102: #define IGALERT 1 ! 103: #define IGCTS 2 ! 104: #define IGDSR 4 ! 105: #define IGCD 8 ! 106: #define IGMSTAT 16 ! 107: #define IGLSTAT 32 ! 108: ! 109: /* ! 110: * Old argument values for the is...() functions ! 111: */ ! 112: #define DIRECT 0 ! 113: #define STATIC 1 ! 114: ! 115: /************************************************************************* ! 116: * SUPPORT POLICY RE ALL STRUCTURES FROM HERE ON: * ! 117: * * ! 118: * These structures are used internally by the Comm functions and the * ! 119: * interrupts. Feel free to look around, but it's not a good idea to * ! 120: * change anything here! * ! 121: * * ! 122: ************************************************************************/ ! 123: ! 124: /* ! 125: * Port Status Bits (from interrupt process) ! 126: */ ! 127: struct AS_STBITS { ! 128: unsigned alert : 1; ! 129: unsigned rxempty : 1; ! 130: unsigned rxfull : 1; ! 131: unsigned rxovflow : 1; ! 132: unsigned txempty : 1; ! 133: unsigned txfull : 1; ! 134: unsigned linerr : 1; ! 135: unsigned modchg : 1; ! 136: unsigned xchrun : 1; ! 137: unsigned rchrun : 1; ! 138: unsigned txwxon : 1; ! 139: unsigned txwcts : 1; ! 140: unsigned txwalert : 1; ! 141: unsigned xoffsent : 1; ! 142: unsigned rtsactive : 1; ! 143: unsigned txiflag : 1; ! 144: }; ! 145: ! 146: /* ! 147: *Interrupt Options (written from application side, read by interrupts) ! 148: */ ! 149: struct AS_MODEBITS { ! 150: unsigned is_txint : 1; ! 151: unsigned is_rxint : 1; ! 152: unsigned is_ascii : 1; ! 153: unsigned is_rxerror : 1; ! 154: unsigned is_receiver_xoffmode : 1; ! 155: unsigned cts_low_holds_tx_interrupts : 1; ! 156: unsigned alert_flag_stops_rx_and_tx : 1; ! 157: unsigned dsr_low_discards_rx_data : 1; ! 158: unsigned cd_low_discards_rx_data : 1; ! 159: unsigned modem_status_changes_set_alert : 1; ! 160: unsigned line_errors_set_alert : 1; ! 161: unsigned is_16550 : 1; ! 162: unsigned is_blocking : 1; ! 163: unsigned is_rchking : 1; ! 164: unsigned is_rtscontrol : 1; ! 165: unsigned is_transmitter_xoffmode : 1; ! 166: }; ! 167: ! 168: /* ! 169: *Port Information Table ! 170: */ ! 171: struct PORT_TABLE { ! 172: int intrpt_num; /* 8250 interrupt no. 0C... */ ! 173: unsigned base_8250; /* base i/o address of 8250 */ ! 174: int p_8250[ 5 ]; /* previous values for 8250 registers: ! 175: 0 = line control register, ! 176: 1 = modem control register, bits 5-7 are FCR ! 177: 2 = interrupt enable register, ! 178: 3 = divisor latch LSB, ! 179: 4 = divisor latch MSB ! 180: */ ! 181: void ( GF_FAR * p_vector )( void ); /* previous value for interrupt vector */ ! 182: unsigned int line_stat; /* Cumulative line status */ ! 183: unsigned int modem_stat; /* Cumulative modem status */ ! 184: unsigned int wide_stat; /* Current wide-track status */ ! 185: ! 186: int irq_8259; /* Interrupt # in 8259 (com0 = 4) */ ! 187: int saved_8259_bits; /* Previous value of irq_8259 bit */ ! 188: unsigned int port_8259; /* I/O Address of 8259 */ ! 189: ! 190: unsigned int rx_cell; /* size of rx cell ( for wide-track ) */ ! 191: unsigned int rx_size; /* size of receive buffer */ ! 192: unsigned int rx_count; /* number of bytes in receive buffer */ ! 193: unsigned int rx_head; /* offset of receive buffer head */ ! 194: unsigned int rx_tail; /* offset of receive buffer tail */ ! 195: #ifdef VGFD ! 196: char GF_FAR *rx_buffer; /* always points to base of rx buffer */ ! 197: #else ! 198: char GF_DLL_FAR *rx_buffer; /* always points to base of rx buffer */ ! 199: #endif ! 200: unsigned int tx_cell; /* size of tx cell (always 1) */ ! 201: unsigned int tx_size; /* size of transmit buffer */ ! 202: unsigned int tx_count; /* number of bytes in transmit buffer */ ! 203: unsigned int tx_head; /* offset of transmit buffer head */ ! 204: unsigned int tx_tail; /* offset of transmit buffer tail */ ! 205: ! 206: #ifdef VGFD ! 207: char GF_FAR *tx_buffer; /* points to base of transmit buffer */ ! 208: #else ! 209: char GF_DLL_FAR *tx_buffer; /* points to base of transmit buffer */ ! 210: #endif ! 211: struct AS_STBITS chst_bits; /* port status bits */ ! 212: struct AS_MODEBITS chmode_bits; /* port mode bits IN,OUT,XON,etc */ ! 213: ! 214: unsigned int rts_lowater; /* when to assert RTS */ ! 215: unsigned int rts_hiwater; /* when to de-assert RTS */ ! 216: unsigned int rx_accum; /* counter for received characters */ ! 217: unsigned int rx_lowater; /* When to send an XON */ ! 218: unsigned int rx_hiwater; /* When to send an XOFF */ ! 219: int stop_xmt; /* The incoming XOFF character */ ! 220: int start_xmt; /* The incoming XON character */ ! 221: int stop_rem_xmt; /* The outbound XOFF character */ ! 222: int start_rem_xmt; /* The outbound XON character */ ! 223: ! 224: int break_delay; /* The number of ticks in a break */ ! 225: ! 226: int aswmodem; /* Polled mode timeout values */ ! 227: int aswtime; ! 228: int asrtime; ! 229: ! 230: unsigned int chkchr[ 3 ]; /* Each character occupies the low ! 231: 8 bits, the high order bit (bit 15) ! 232: is set to 1 if rx-interrupts are to ! 233: look at this character, bit 14 is set ! 234: by interrupt routines and is to be ! 235: checked by asirchk(). Bit 8 & 9 ! 236: determine the mode or option of what ! 237: to do */ ! 238: unsigned int mscount; /* Modem status interrupt counter */ ! 239: unsigned int lscount; /* Line status interrupt counter */ ! 240: unsigned int txcount; /* Transmit interrupt counter */ ! 241: unsigned int rxcount; /* Receive interrupt counter */ ! 242: int out12_mask; /* The OUT1/OUT2 mask */ ! 243: int ls_ms_ier; /* The interrupt enable initial mask */ ! 244: PORT GF_DLL_FAR *generic_driver; /* Pointer to Level 2 structure */ ! 245: ! 246: #ifndef VGFD ! 247: unsigned int tx_16550_limit; /* FIFO buffer limit for 16550 */ ! 248: #endif ! 249: ! 250: #ifdef VGFD ! 251: long reserved1; /* for VGFD */ ! 252: long reserved2; /* for VGFD */ ! 253: #endif ! 254: ! 255: }; ! 256: ! 257: /************************************************************************* ! 258: * ARRAYS OF FUNDAMENTAL THINGS THAT MUST BE KNOWN AT INTERRUPT TIME. * ! 259: * * ! 260: * 1. Pointer to main parameter structure for the port. * ! 261: * 2. I/O Address of status reg if shared-int hardware, zero if not. * ! 262: * 3. If shared hardware, this is bitmask to compare for the port. * ! 263: * Note: when the int. reads the status port it searches for a * ! 264: * match against an entry in this column in the array. * ! 265: * 4. Value to be XOR'ed with value read from shared port, this will * ! 266: * cover the case where bits in the board's interrupt I.D. register * ! 267: * are active when 0 instead of active when 1. * ! 268: ************************************************************************/ ! 269: ! 270: enum GSCI_HANDLER_TYPE { GSCI_STANDARD_HANDLER = 0, ! 271: GSCI_SHARED_IRQ_HANDLER = 1, ! 272: GSCI_USER_INSTALLED_HANDLER = 2, ! 273: GSCI_DEFUNCT_HANDLER = 3 }; ! 274: ! 275: struct PORTINFO { ! 276: #ifdef VGFD ! 277: struct PORT_TABLE GF_FAR *ptb; ! 278: #else ! 279: struct PORT_TABLE GF_DLL_FAR *ptb; ! 280: #endif ! 281: unsigned as_shport; ! 282: unsigned as_shbits; ! 283: unsigned as_mask; ! 284: unsigned as_xorv; ! 285: enum GSCI_HANDLER_TYPE handler_type; ! 286: #ifdef VGFD ! 287: unsigned task_handle_port; /* VGFD task handle */ ! 288: int vm_id_port; /* VGFD VM id */ ! 289: long reserved2; /* for VGFD */ ! 290: #endif ! 291: }; ! 292: ! 293: #ifdef __cplusplus ! 294: extern "C" { ! 295: #endif ! 296: ! 297: #ifdef VGFD ! 298: extern struct PORTINFO GF_FAR *as_chnl; ! 299: #else ! 300: extern struct PORTINFO as_chnl[ MAX_PORT ]; ! 301: #endif ! 302: extern int _aserror, _asoprt, _asmask, _asxorv, _comvers; ! 303: ! 304: #ifdef __cplusplus ! 305: } ! 306: #endif ! 307: ! 308: ! 309: #define isalert( p ) _iswhat( ( p ), 1 ) /* Tag: GSCI public */ ! 310: #define isrxempty( p ) _iswhat( ( p ), 2 ) /* Tag: GSCI public */ ! 311: #define isrxfull( p ) _iswhat( ( p ), 3 ) /* Tag: GSCI public */ ! 312: #define isrxovflow( p ) _iswhat( ( p ), 4 ) /* Tag: GSCI public */ ! 313: #define istxempty( p ) _iswhat( ( p ), 5 ) /* Tag: GSCI public */ ! 314: #define istxfull( p ) _iswhat( ( p ), 6 ) /* Tag: GSCI public */ ! 315: #define islinerr( p ) _iswhat( ( p ), 7 ) /* Tag: GSCI public */ ! 316: #define ismodemerr( p ) _iswhat( ( p ), 8 ) /* Tag: GSCI public */ ! 317: #define istxintrunning( p ) _iswhat( ( p ), 9 ) /* Tag: GSCI public */ ! 318: #define isrxintrunning( p ) _iswhat( ( p ), 10 ) /* Tag: GSCI public */ ! 319: #define AlertFlagStopsRXAndTX( p ) _iswhat( ( p ), 11 ) /* Tag: GSCI public */ ! 320: #define CTSLowHoldsTXInterrupts( p ) _iswhat( ( p ), 12 ) /* Tag: GSCI public */ ! 321: #define DSRLowDiscardsRXData( p ) _iswhat( ( p ), 13 ) /* Tag: GSCI public */ ! 322: #define CDLowDiscardsRXData( p ) _iswhat( ( p ), 14 ) /* Tag: GSCI public */ ! 323: #define ModemStatusChangesSetAlert( p ) _iswhat( ( p ), 15 ) /* Tag: GSCI public */ ! 324: #define LineStatusErrorsSetAlert( p ) _iswhat( ( p ), 16 ) /* Tag: GSCI public */ ! 325: ! 326: #define isoverrun( p, o ) _isstat( ( p ), o, 1 ) /* Tag: GSCI public */ ! 327: #define isparityerr( p, o ) _isstat( ( p ), o, 2 ) /* Tag: GSCI public */ ! 328: #define isframerr( p, o ) _isstat( ( p ), o, 3 ) /* Tag: GSCI public */ ! 329: #define isbreak( p, o ) _isstat( ( p ), o, 4 ) /* Tag: GSCI public */ ! 330: #define iscts( p, o ) _isstat( ( p ), o, 5 ) /* Tag: GSCI public */ ! 331: #define isdsr( p, o ) _isstat( ( p ), o, 6 ) /* Tag: GSCI public */ ! 332: #define iscd( p, o ) _isstat( ( p ), o, 7 ) /* Tag: GSCI public */ ! 333: #define isri( p, o ) _isstat( ( p ), o, 8 ) /* Tag: GSCI public */ ! 334: #define ischgcts( p, o ) _isstat( ( p ), o, 9 ) /* Tag: GSCI public */ ! 335: #define ischgdsr( p, o ) _isstat( ( p ), o, 10 ) /* Tag: GSCI public */ ! 336: #define ischgcd( p, o ) _isstat( ( p ), o, 11 ) /* Tag: GSCI public */ ! 337: #define ischgri( p, o ) _isstat( ( p ), o, 12 ) /* Tag: GSCI public */ ! 338: ! 339: #define isncts( p ) _iswhat( ( p ), 17 ) /* Tag: GSCI public */ ! 340: #define isndsr( p ) _iswhat( ( p ), 18 ) /* Tag: GSCI public */ ! 341: #define isncd( p ) _iswhat( ( p ), 19 ) /* Tag: GSCI public */ ! 342: #define isring( p ) _iswhat( ( p ), 20 ) /* Tag: Defunct Public */ ! 343: #define isxmrxing( p ) _iswhat( ( p ), 21 ) /* Tag: GSCI public */ ! 344: #define isxoffblocked( p ) _iswhat( ( p ), 22 ) /* Tag: GSCI public */ ! 345: #define isctsblocked( p ) _iswhat( ( p ), 23 ) /* Tag: GSCI public */ ! 346: #define is16550( p ) _iswhat( ( p ), 24 ) /* Tag: GSCI public */ ! 347: /* ! 348: * The old Hayes Modem function names ! 349: */ ! 350: #define hmreset HMReset /* Tag: Modem Defunct */ ! 351: #define hmregset HMSetRegister /* Tag: Modem Defunct */ ! 352: #define hmringnum HMSetAutoAnswerRingCount /* Tag: Modem Defunct */ ! 353: #define hmringcnt HMGetIncomingRingCount /* Tag: Modem Defunct */ ! 354: #define hmescset HMSetEscapeCode /* Tag: Modem Defunct */ ! 355: #define hms3set HMSetEndOfLineCharacter /* Tag: Modem Defunct */ ! 356: #define hms4set HMSetLineFeedCharacter /* Tag: Modem Defunct */ ! 357: #define hms5set HMSetBackspaceCharacter /* Tag: Modem Defunct */ ! 358: #define hmdialset HMSetWaitForDialToneTime /* Tag: Modem Defunct */ ! 359: #define hmcarrset HMSetWaitTimeForCarrier /* Tag: Modem Defunct */ ! 360: #define hmcomaset HMSetPauseTimeForComma /* Tag: Modem Defunct */ ! 361: #define hmcarrec HMSetCDResponseTime /* Tag: Modem Defunct */ ! 362: #define hmcarrdisc HMSetCarrierDisconnectTime /* Tag: Modem Defunct */ ! 363: #define hmdialrate HMSetTouchToneDuration /* Tag: Modem Defunct */ ! 364: #define hmescguard HMSetEscapeCodeGuardTime /* Tag: Modem Defunct */ ! 365: #define hmuart HMGetUARTStatus /* Tag: Modem Defunct */ ! 366: #define hmoption HMGetOptionRegister /* Tag: Modem Defunct */ ! 367: #define hmflags HMGetFlagRegister /* Tag: Modem Defunct */ ! 368: #define hmonline HMGoOnline /* Tag: Modem Defunct */ ! 369: #define hmdialmode HMSetDialingMethod /* Tag: Modem Defunct */ ! 370: #define hmdial HMDial /* Tag: Modem Defunct */ ! 371: #define hmrepeat HMRepeatLastCommand /* Tag: Modem Defunct */ ! 372: #define hmreverse HMDialInAnswerMode /* Tag: Modem Defunct */ ! 373: #define hmanswer HMAnswer /* Tag: Modem Defunct */ ! 374: #define hmcarron HMSetCarrier /* Tag: Modem Defunct */ ! 375: #define hmecho HMSetEchoMode /* Tag: Modem Defunct */ ! 376: #define hmduplex HMSetFullDuplexMode /* Tag: Modem Defunct */ ! 377: #define hmhook HMSetHookSwitch /* Tag: Modem Defunct */ ! 378: #define hmspeak HMSetSpeaker /* Tag: Modem Defunct */ ! 379: #define hmquiet HMReturnNoResultCodes /* Tag: Modem Defunct */ ! 380: #define hmextend HMSelectExtendedResultCodes /* Tag: Modem Defunct */ ! 381: #define hmverbose HMSetVerboseMode /* Tag: Modem Defunct */ ! 382: #define hmstr HMSendString /* Tag: Modem Defunct */ ! 383: #define hmregread HMGetRegister /* Tag: Modem Defunct */ ! 384: ! 385: ! 386: #ifdef __cplusplus ! 387: extern "C" { ! 388: #endif ! 389: ! 390: ! 391: int GF_CONV asiflow( int port_number, ! 392: int low_water, ! 393: int hi_water, ! 394: int rts_on_off, ! 395: int cts_on_off ); ! 396: struct PORT_TABLE * GF_CONV _aschkcnl( int port_number); ! 397: int GF_CONV asdtr( int port_number, int on_off ); ! 398: int GF_CONV asgetc( int port_number ); ! 399: int GF_CONV asibreak( int port_number, int length_in_ticks ); ! 400: unsigned int GF_CONV asibstat( int port_number ); ! 401: int GF_CONV asiclear( int port_number, int option ); ! 402: int GF_CONV asidiag( int port_number, int on_off ); ! 403: unsigned int GF_CONV asierst( int port_number ); ! 404: int GF_CONV asifirst( int port_number, ! 405: unsigned int operating_mode, ! 406: unsigned int rx_buffer_length, ! 407: unsigned int tx_buffer_length ); ! 408: unsigned int GF_CONV asigetb( int port_number, ! 409: char GF_DLL_FAR *buffer, ! 410: unsigned int length ); ! 411: unsigned int GF_CONV asigetb_timed( int port_number, ! 412: char GF_DLL_FAR *buffer, ! 413: unsigned int length, ! 414: int ticks ); ! 415: int GF_CONV asigetc( int port_number ); ! 416: int GF_CONV asigetc_timed( int port_number, int ticks ); ! 417: int GF_CONV asigetparms( int port_number, ! 418: long GF_DLL_FAR *baud_rate, ! 419: int GF_DLL_FAR *word_length, ! 420: int GF_DLL_FAR *parity, ! 421: int GF_DLL_FAR *stop_bits, ! 422: int GF_DLL_FAR *dtr, ! 423: int GF_DLL_FAR *rts ); ! 424: unsigned int GF_CONV asigets( int port_number, ! 425: char GF_DLL_FAR *buffer, ! 426: unsigned int maximum_length, ! 427: int terminating_character ); ! 428: unsigned int GF_CONV asigets_timed( int port_number, ! 429: char GF_DLL_FAR *buffer, ! 430: unsigned int maximum_length, ! 431: int terminating_character, ! 432: int ticks ); ! 433: int GF_CONV asihold( int port_number, unsigned int mode ); ! 434: int GF_CONV asicheck( int port_number, int condition, ! 435: int on_off ); ! 436: int GF_CONV asiinit( int port_number, ! 437: long baud_rate, ! 438: int parity, ! 439: int stop_bits, ! 440: int word_length ); ! 441: unsigned int GF_CONV asilrst( int port_number ); ! 442: unsigned int GF_CONV asilstat( int port_number, ! 443: int immediate_or_cumulative); ! 444: unsigned int GF_CONV asimrst( int port_number ); ! 445: unsigned int GF_CONV asimstat( int port_number, ! 446: int immediate_or_cumulative ); ! 447: int GF_CONV asiopen( int port_number, ! 448: unsigned int mode, ! 449: unsigned int rx_buffer_length, ! 450: unsigned int tx_buffer_length, ! 451: long baud_rate, ! 452: int parity, ! 453: int stop_bits, ! 454: int word_length, ! 455: int dtr, ! 456: int rts ); ! 457: int GF_CONV asipeek( int port_number ); ! 458: unsigned int GF_CONV asiputb( int port_number, char * buffer, ! 459: unsigned int length ); ! 460: int GF_CONV asiputc( int port_number, int character ); ! 461: unsigned int GF_CONV asiputs( int port_number, ! 462: char GF_DLL_FAR *output_string, ! 463: int termination_sequence ); ! 464: int GF_CONV asiquit( int port_number ); ! 465: int GF_CONV asirchk( int port_number, ! 466: int code_number, ! 467: unsigned int code_to_check, ! 468: int operation ); ! 469: int GF_CONV asireset( int port_number ); ! 470: int GF_CONV asiresume( int port_number, unsigned int mode ); ! 471: ! 472: ! 473: int GF_CONV asistart( int port_number, unsigned int option ); ! 474: unsigned int GF_CONV asiwgetb( int port_number, ! 475: char GF_DLL_FAR *character_buffer, ! 476: unsigned int maximum_length, ! 477: char GF_DLL_FAR *status_buffer ); ! 478: unsigned int GF_CONV asiwgetb_timed( int port_number, ! 479: char GF_DLL_FAR *character_buffer, ! 480: unsigned int maximum_length, ! 481: char GF_DLL_FAR *status_buffer, ! 482: int ticks ); ! 483: int GF_CONV asiwgetc( int port_number, ! 484: char GF_DLL_FAR *wide_track_buf ); ! 485: int GF_CONV asiwgetc_timed( int port_number, ! 486: char GF_DLL_FAR *wide_track_buffer, ! 487: int ticks ); ! 488: unsigned int GF_CONV asiwgets( int port_number, ! 489: char GF_DLL_FAR *destination_string, ! 490: unsigned int maximum_length, ! 491: int terminating_character, ! 492: char GF_DLL_FAR *status_buffer ); ! 493: unsigned int GF_CONV asiwgets_timed( int port_number, ! 494: char GF_DLL_FAR *destination_string, ! 495: unsigned int maximum_length, ! 496: int terminating_character, ! 497: char GF_DLL_FAR *status_buffer, ! 498: int ticks ); ! 499: int GF_CONV asiwpeek( int port_number, ! 500: char GF_DLL_FAR *status_buffer ); ! 501: int GF_CONV asixoff( int port_number ); ! 502: int GF_CONV asixon( int port_number, ! 503: int low_water_mark, ! 504: int high_water_mark, ! 505: int xon_character, ! 506: int xoff_character ); ! 507: unsigned int GF_CONV asixrst( int port_number ); ! 508: int GF_CONV asputc( int port_number, int character ); ! 509: unsigned int GF_CONV asputs( int port_number, ! 510: char GF_DLL_FAR *output_string, ! 511: int termination_sequence ); ! 512: int GF_CONV asrts( int port_number, int on_or_off ); ! 513: unsigned int GF_CONV getrxcnt( int port_number ); ! 514: unsigned int GF_CONV gettxfree( int port_number ); ! 515: int GF_CONV isrchk( int port_number, int code_number ); ! 516: int GF_CONV _isstat( int port_number, ! 517: int what_to_check, ! 518: int what_to_do ); ! 519: int GF_CONV isxmrxcnt( int port_number, unsigned int count ); ! 520: int GF_CONV _iswhat( int port_number, int what_to_check ); ! 521: int GF_CONV ClearTXWaitConditions( int port ); ! 522: #if defined( VGFD ) ! 523: void GF_CONV UseInterruptCounters( int engage ); ! 524: #else ! 525: void GF_CDECL UseInterruptCounters( int engage ); ! 526: void GF_CONV GreenleafSet16550UseTXFifos( int port, int control ); ! 527: #endif ! 528: int GF_CONV GreenleafSet16550TriggerLevel( TRIGGER_LEVEL level ); ! 529: int GF_CONV GreenleafUseRXXonXoff( int port, ! 530: int low_water, ! 531: int hi_water, ! 532: int xon, ! 533: int xoff ); ! 534: int GF_CONV GreenleafUseTXXonXoff( int port, int xon, int xoff ); ! 535: int GF_CONV GreenleafUseXonXoff( int port, ! 536: int low_water, ! 537: int hi_water, ! 538: int xon, ! 539: int xoff ); ! 540: int GF_CONV GreenleafDisableRXXonXoff( int port ); ! 541: int GF_CONV GreenleafDisableTXXonXoff( int port ); ! 542: int GF_CONV GreenleafDisableXonXoff( int port ); ! 543: int GF_CONV SetWidetrackMode( int port, int control ); ! 544: int GF_CONV GreenleafSetPortHardware( int port, ! 545: int irq, ! 546: int address ); ! 547: int GF_CONV GreenleafGetPortHardware( int port, ! 548: int GF_DLL_FAR *irq, ! 549: int GF_DLL_FAR *address ); ! 550: int GF_CONV GreenleafGetSavedPortParameters( ! 551: int port, ! 552: long GF_DLL_FAR *baud_rate, ! 553: char GF_DLL_FAR *parity, ! 554: int GF_DLL_FAR *word_length, ! 555: int GF_DLL_FAR *stop_bits, ! 556: int GF_DLL_FAR *dtr, ! 557: int GF_DLL_FAR *rts, ! 558: int GF_DLL_FAR *trigger_level ); ! 559: int GF_CONV GreenleafSetSavedPortParameters( int port, ! 560: long baud_rate, ! 561: char parity, ! 562: int word_length, ! 563: int stop_bits, ! 564: int dtr, ! 565: int rts, ! 566: int trigger_level ); ! 567: ! 568: #ifdef __cplusplus ! 569: } ! 570: #endif ! 571: ! 572: #ifdef VGFD ! 573: #include "sacommon.h" ! 574: #endif ! 575: ! 576: #define GREENLEAF_HANDLE_TO_PORT( h ) ( as_chnl[ h ].ptb )->generic_driver /* Tag: GSCI public */ ! 577: ! 578: #endif /* #ifndef GSCI_DOT_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.