Annotation of gcl520h/_fast.h, revision 1.1

1.1     ! root        1: #ifndef __FAST_DOT_H
        !             2: #define __FAST_DOT_H
        !             3: 
        !             4: /*
        !             5:  * _FAST.H      5.20A  June 8, 1995
        !             6:  *
        !             7:  *  The Greenleaf Comm Library
        !             8:  *
        !             9:  *  Copyright (C) 1991-1995 Greenleaf Software Inc.  All Rights Reserved.
        !            10:  *
        !            11:  * NOTES
        !            12:  *
        !            13:  * This header file contains constants, structures, and definitions
        !            14:  * used by the Greenleaf Fast interface code.  There should generally
        !            15:  * not be any reason for an end user of the library to include this file.
        !            16:  *
        !            17:  * MODIFICATIONS
        !            18:  *
        !            19:  * December 12, 1992  4.00A : Initial release
        !            20:  */
        !            21: 
        !            22: /*
        !            23:  * In order to change the buffer size, you need to edit the line here
        !            24:  * and change the 1024 to some other power of 2.  Then change the
        !            25:  * equivalent line in _FISRASM.EQU to the same number.  Finally,
        !            26:  * BUILD X FAST_*.C F_*.ASM, and you have a new buffer size.
        !            27:  */
        !            28: 
        !            29: #define FAST_BUFFER_SIZE      1024
        !            30: #define FAST_HIGH_WATER_MARK  ( ( FAST_BUFFER_SIZE * 3 ) / 4 )
        !            31: #define FAST_LOW_WATER_MARK   ( FAST_BUFFER_SIZE / 4 )
        !            32: 
        !            33: /*
        !            34:  * #define FAST_ISR_IN_C
        !            35:  */
        !            36: 
        !            37: /*
        !            38:  * Note that real far pointers are saved as unsigned longs.  This
        !            39:  * prevents protected mode code from accidentally choking if and
        !            40:  * when it treats a real mode address as a pointer
        !            41:  */
        !            42: 
        !            43: #define FAST_PORT  struct _tag_fast_port
        !            44: 
        !            45: #if defined( GF_X32 )
        !            46: #pragma pack( 1 )
        !            47: #endif
        !            48: 
        !            49: struct _tag_fast_port {
        !            50: #if defined( GF_X32 )
        !            51:     GF_FARPTR32 next_fast_port;
        !            52:     GF_FARPTR16 real_next_fast_port;
        !            53: #elif defined( GF_X16 )
        !            54:     struct _tag_fast_port far *next_fast_port;
        !            55:     GF_REALPTR16 real_next_fast_port;
        !            56: #else
        !            57:     struct _tag_fast_port GF_FAR *next_fast_port;
        !            58:     unsigned long real_next_fast_port;
        !            59: #endif
        !            60:     int fast_id;
        !            61:     int uart_base;
        !            62:     int head_pointer;
        !            63:     int tail_pointer;
        !            64:     int interrupt_number;
        !            65:     int line_status;
        !            66:     int mcr_rx_handshake_bit;
        !            67:     int msr_tx_handshake_bit;
        !            68:     int blocking;
        !            69:     int is_16550;
        !            70:     int use_16550_TX_fifo;
        !            71:     int trigger_level;
        !            72:     char buffer[ FAST_BUFFER_SIZE ];
        !            73: };
        !            74: 
        !            75: #undef FAST_PORT
        !            76: 
        !            77: typedef struct _tag_fast_port FAST_PORT;
        !            78: 
        !            79: /*
        !            80:  * A short port is just the fast port minus the buffer.  I use this
        !            81:  * a lot under the 32 bit DOS extenders, when I copy the port structure
        !            82:  * into a shadow structure to dink with it.
        !            83:  */
        !            84: 
        !            85: typedef struct _tag_short_fast_port {
        !            86: #if defined( GF_X32 )
        !            87:     GF_FARPTR32 next_fast_port;
        !            88:     GF_FARPTR16 real_next_fast_port;
        !            89: #elif defined( GF_X16 )
        !            90:     struct _tag_fast_port far *next_fast_port;
        !            91:     GF_REALPTR16 real_next_fast_port;
        !            92: #else
        !            93:     struct _tag_fast_port GF_FAR *next_fast_port;
        !            94:     unsigned long real_next_fast_port;
        !            95: #endif
        !            96:     int fast_id;
        !            97:     int uart_base;
        !            98:     int head_pointer;
        !            99:     int tail_pointer;
        !           100:     int interrupt_number;
        !           101:     int line_status;
        !           102:     int mcr_rx_handshake_bit;
        !           103:     int msr_tx_handshake_bit;
        !           104:     int blocking;
        !           105:     int is_16550;
        !           106:     int use_16550_TX_fifo;
        !           107:     int trigger_level;
        !           108: } SHORT_FAST_PORT;
        !           109: int GF_CONV _DumpPortStatusGreenleafFast( PORT *port, PORT_DUMPER printer );
        !           110: 
        !           111: #if defined( GF_X32 )
        !           112:   void GF_CDECL _GreenleafFastRealIsr( GF_FARPTR16 fast_port );
        !           113:   void GF_CDECL _GreenleafFastIsr( GF_FARPTR32 fast_port );
        !           114: #elif defined( GF_X16 )
        !           115:   void GF_CDECL far _GreenleafFastRealIsr( FAST_PORT far *fast_port );
        !           116:   void GF_CDECL far _GreenleafFastIsr( FAST_PORT far *fast_port );
        !           117: #else
        !           118:   void GF_CDECL GF_FAR _GreenleafFastIsr( FAST_PORT GF_FAR *fast_port );
        !           119: #endif
        !           120: 
        !           121: #if defined( GF_X32 )
        !           122: #pragma pack()
        !           123: #endif
        !           124: 
        !           125: #endif  /* #ifndef __FAST_DOT_H */
        !           126: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.