Annotation of gcl520h/_irq386.h, revision 1.1

1.1     ! root        1: #ifndef _IRQ32_DOT_H
        !             2: #define _IRQ32_DOT_H
        !             3: 
        !             4: /*
        !             5:  * _IRQ386.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 structures and constants used by
        !            14:  *  the 32 bit IRQ Manager internal functions.  End users should never
        !            15:  *  have to include this file in any of their source modules.
        !            16:  *
        !            17:  * MODIFICATIONS
        !            18:  *
        !            19:  *  December 1, 1994   5.10A :  Initial release.
        !            20:  *
        !            21:  */
        !            22: 
        !            23: #define MAXIMUM_HANDLERS 10
        !            24: 
        !            25: #pragma pack( 1 )
        !            26: 
        !            27: typedef struct _tag_irqdata {
        !            28:     GF_FARPTR32 old_handler;
        !            29:     GF_FARPTR16 old_real_handler;
        !            30:     GF_FARPTR32 handler;
        !            31:     GF_FARPTR16 real_handler;
        !            32:     GF_FARPTR32 handler_data;
        !            33:     GF_FARPTR16 real_handler_data;
        !            34:     void ( GF_CONV *tear_down_function )( GF_FARPTR32 data );
        !            35:     int interrupt_number;
        !            36:     int saved_8259_bit;
        !            37:     int primary_8259;
        !            38:     int secondary_8259;
        !            39:     int mask_8259;
        !            40:     int int_count;
        !            41:     int real_int_count;
        !            42: } IRQDATA;
        !            43: 
        !            44: #pragma pack()
        !            45: 
        !            46: #ifdef __cplusplus
        !            47: extern "C" {
        !            48: #endif
        !            49: 
        !            50: int GF_CONV HookInterrupt( int interrupt_number,
        !            51:                            void ( GF_CDECL *handler )( GF_FARPTR32 data ),
        !            52:                            GF_FARPTR16 real_handler,
        !            53:                            GF_FARPTR32 handler_data,
        !            54:                            void ( GF_CONV *tear_down_function ) ( GF_FARPTR32 data ),
        !            55:                            int primary_8259,
        !            56:                            int secondary_8259,
        !            57:                            int mask_8259 );
        !            58: int GF_CONV UnHookInterrupt( int interrupt_number );
        !            59: GF_FARPTR32 GF_CONV _GetInterruptData( int interrupt_number );
        !            60: int GF_CONV RelocateIsrData( void );
        !            61: 
        !            62: #ifdef __cplusplus
        !            63: }
        !            64: #endif
        !            65: 
        !            66: /*
        !            67:  * These two extern definitions are really important.  When
        !            68:  * the 32 bit IRQ manager is initialized, it relocates the real portion
        !            69:  * of the IRQ manager, plus the table of IRQDATA blocks down to
        !            70:  * a block of real memory.  Thse two pointers let everyone else
        !            71:  * know where that memory block is.
        !            72:  */
        !            73: 
        !            74: extern GF_FARPTR16 RealBlockPtr16;
        !            75: extern GF_FARPTR32 RealBlockPtr32;
        !            76: /*
        !            77:  * Anything that is stored in the reloacted real section of memory
        !            78:  * can't be addressed directly.  Instead, we calculate an offset
        !            79:  * into the real mode segment by subtracting _SegmentStartRR16.  It
        !            80:  * is the first address in the real segment.  The next value defined
        !            81:  * here marks the end of the relocated real segment.  We only need it
        !            82:  * so we can figure out how much memory to relocate.
        !            83:  */
        !            84: 
        !            85: extern char _SegmentStartRR16;
        !            86: extern char _SegmentEndRR16;
        !            87: 
        !            88: /*
        !            89:  * This is a dummy stub real mode interrupt that I use
        !            90:  * to handle Ctrl-Break and Ctrl-C in real mode under PowerPack.
        !            91:  *
        !            92:  */
        !            93: 
        !            94: void GF_CDECL _RealIret( GF_FARPTR16 int_flag );
        !            95: void GF_CDECL kbd_int_handler( GF_FARPTR32 data );
        !            96: 
        !            97: 
        !            98: #endif /* #ifndef _IRQ32_DOT_H */
        !            99: 

unix.superglobalmegacorp.com

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