/*=====[ The TesSeRact(TM) CXL User Interface Development System ]======* | Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved | | This Library is part of IDC's TesSeRact Development Tools product | line. For information about other IDC products, call 1-215-884-3373. *----------------------------------------------------------------------* | : Definitions and prototypes for handling explicit, typed | far-pointers as used internally in TCXL 5.5. *-------------------------------[ NOTES ]------------------------------* | 1) The _XxxFar() aliases take full far pointers and the _FarXxx() | functions take separate segments and offsets. | 2) The MK_FP() and MK_FPT() macros will override system definitions | and provide compiler-independence. | 3) MK_FPT() is *very* useful in C++, where void pointers are not | usually allowed without bizarre casts. *----------------------------------------------------------------------* | PGS : $Id: tcxlfar.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $ | $Log: tcxlfar.h $ | Revision 5.51 90/10/01 00:00:00 MLM | TCXL 5.51 | *======================================================================*/ #ifndef _TCXLfar_ # define _TCXLfar_ 1 /* only once! */ # ifndef _TCXLdef_ # include /* standards */ # endif #ifdef MK_FP /* use local definitions */ # undef MK_FP #endif /* anonymous far-pointer */ #define MK_FP(s,o) ((AnyFP) (((DwdT)(s) << 16) | (WrdT)(o))) #ifdef MK_FPT # undef MK_FPT #endif /* typed far-pointer */ #define MK_FPT(t,s,o) ((t FAR *) (((DwdT)(s) << 16) | (WrdT)(o))) /*------------------------[ Function prototypes ]----------------------*/ #ifdef __cplusplus /* no mangling, please */ extern "C" { #endif VOID PAS _FarCpy(WrdT st, WrdT ot, WrdT sf, WrdT of, WrdT n); VOID PAS _CpyFar(BytFP t, BytFP f, WrdT n); /* alias */ VOID PAS _FarGet(BytP p, WrdT s, WrdT o, WrdT n); VOID PAS _GetFar(BytP t, BytFP f, WrdT n); /* alias */ VOID PAS _FarPut(WrdT s, WrdT o, BytP p, WrdT n); VOID PAS _PutFar(BytFP t, BytP f, WrdT n); /* alias */ #ifdef __cplusplus } #endif #endif /* _TCXLfar_ -- End of TCXLfar.h */