Annotation of gcl520h/_defs286.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * _DEFS286.H       5.20A  June 8, 1995
        !             3:  *
        !             4:  * The Greenleaf Comm Library
        !             5:  *
        !             6:  * Copyright (C) 1985-1995 Greenleaf Software Inc.  All Rights Reserved.
        !             7:  *
        !             8:  * NOTES
        !             9:  *
        !            10:  *  This header file contains prototypes and miscellaneous definitions
        !            11:  *  for use with all 16 bit DOS Extenders.  The functions and macros
        !            12:  *  in this file are intended to provide a transparent and uniform
        !            13:  *  set of functions that can be used with any 286 DOS Extender.
        !            14:  *
        !            15:  * Things we need to define in order to support a 285DOS Extender.
        !            16:  * These can be macros, typedefs, functions, or whatever.  It
        !            17:  * all depends on what DOS Extender and compiler you are using.
        !            18:  *
        !            19:  * Functions defined in all caps might be defined as Macros.
        !            20:  *
        !            21:  *  Defined by the compiler    Defined by the DOS Extender
        !            22:  *
        !            23:  *  GF_REALPTR16              GF_DPMI16
        !            24:  *  GF_SEG16                  _GetDosSelector
        !            25:  *  GF_OFF16                  _GetRealAddress
        !            26:  *  _GetDs                    _GetOldProtHandler
        !            27:  *                            _GetOldRealHandler
        !            28:  *                            _SetHandlers
        !            29:  *                            _AllocateDosMemory
        !            30:  *                            _FreeDosMemory
        !            31:  *                            _LockRegion
        !            32:  *  Always defined: GF_X16
        !            33:  *
        !            34:  * CONTENTS
        !            35:  *
        !            36:  * MODIFICATIONS
        !            37:  *
        !            38:  *  December 1, 1994   5.10A :  Initial release.
        !            39:  */
        !            40: 
        !            41: #if !defined( _DEFS286_H )
        !            42: #define _DEFS286_H
        !            43: 
        !            44: #include "compiler.h"
        !            45: #include <dos.h>
        !            46: 
        !            47: /*
        !            48:  * Identify the DOS Extender.
        !            49:  */
        !            50: 
        !            51: #if defined( DOSX286 )
        !            52: #  define GF_X16
        !            53: #elif defined( DOS16M )
        !            54: #  define GF_DPMI16
        !            55: #  define GF_X16
        !            56: #elif defined( GF_BORLAND_CPP ) && defined( __DPMI16__ )
        !            57: #  define GF_DPMI16
        !            58: #  define GF_X16
        !            59: #endif
        !            60: 
        !            61: #ifdef GF_X16
        !            62: 
        !            63: /*
        !            64:  * Under 16 bit DOS extenders, we will have to manipulate 16:16
        !            65:  * real pointers from time to time.  This structure definition and
        !            66:  * associated macros make that a little easier to do.  Note that you
        !            67:  * don't *ever* want to load a real mode pointer into a pointer variable,
        !            68:  * this will cause a fast GPF.  These structures are nice and safe.
        !            69:  */
        !            70: 
        !            71: typedef struct _tag_realptr {
        !            72:     unsigned int offset;
        !            73:     unsigned int segment;
        !            74: } GF_REALPTR16;
        !            75: #define GF_SEG16( x ) (x).segment  /* Tag: Extender private */
        !            76: #define GF_OFF16( x ) (x).offset   /* Tag: Extender private */
        !            77: 
        !            78: /*
        !            79:  * The following functions are prototyped for every DOS Extender and
        !            80:  * compiler.  The prototypes are identical regardeless of the tool,
        !            81:  * so you won't see any ifdefs here.
        !            82:  */
        !            83: 
        !            84: #ifdef __cplusplus
        !            85: extern "C" {
        !            86: #endif
        !            87: 
        !            88: unsigned int GF_CONV _GetDosSelector( unsigned int segment );
        !            89: GF_REALPTR16 GF_CONV _GetRealAddress( void far *protected_address );
        !            90: void far *GF_CONV _GetOldProtHandler( int interrupt_number );
        !            91: GF_REALPTR16 GF_CONV _GetOldRealHandler( int interrupt_number );
        !            92: int GF_CONV _SetHandlers( int interrupt_number, void far *prot_handler, GF_REALPTR16 real_handler );
        !            93: void far *GF_CONV _AllocateDosMemory( int size );
        !            94: int GF_CONV _FreeDosMemory( void far *p );
        !            95: int GF_CONV _LockRegion( void far *base, int size );
        !            96: unsigned int GF_CONV _GetDs( void );
        !            97: 
        !            98: #ifdef __cplusplus
        !            99: }
        !           100: #endif
        !           101: #endif /* #ifdef GF_X16 */
        !           102: #endif /* #if !defined( _DEFS286_H ) */

unix.superglobalmegacorp.com

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