Annotation of gcl520h/_defs286.h, revision 1.1.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.