Snados.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
- /****************************** Module Header ******************************
- *
- * Module Name: SNADOS.H
- *
- * Description: Microsoft SNA Server MSDOS specific 3270 Emulator Interface
- * definitions.
- *
- * Copyright (c) Microsoft Corporation. All rights reserved.
- *
- ***************************************************************************/
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Common definitions */
- #define PASCAL pascal
- #define FAR far
- #define NEAR near
- #define VOID void
- #define APIENTRY far pascal
- #ifndef WINAPI
- #define WINAPI APIENTRY
- #endif
- #define CHAR char /* ch */
- #define SHORT short /* s */
- #define LONG long /* l */
- #define INT int /* i */
- typedef unsigned char UCHAR; /* uch */
- typedef unsigned short USHORT; /* us */
- typedef unsigned long ULONG; /* ul */
- typedef unsigned int UINT; /* ui */
- typedef unsigned char BYTE; /* b */
- typedef unsigned short SHANDLE;
- /* define NULL pointer value */
- /* Echo the format of the ifdefs that stdio.h uses */
- #if (_MSC_VER >= 600)
- #define NULL ((void *)0)
- #else
- #if (defined(M_I86L) || defined(M_I86CM) || defined(M_I86LM) || defined(M_I86HM))
- #define NULL 0L
- #else
- #define NULL 0
- #endif
- #endif
- typedef SHANDLE HFILE; /* hf */
- typedef HFILE far *PHFILE;
- typedef unsigned char far *PSZ;
- typedef unsigned char near *NPSZ;
- typedef char far *LPSTR;
- typedef unsigned char far *PCH;
- typedef unsigned char near *NPCH;
- typedef int (pascal far *PFN)();
- typedef int (pascal near *NPFN)();
- typedef PFN far *PPFN;
- typedef BYTE FAR *PBYTE;
- typedef BYTE near *NPBYTE;
- typedef CHAR FAR *PCHAR;
- typedef SHORT FAR *PSHORT;
- typedef LONG FAR *PLONG;
- typedef INT FAR *PINT;
- typedef UCHAR FAR *PUCHAR;
- typedef USHORT FAR *PUSHORT;
- typedef ULONG FAR *PULONG;
- typedef UINT FAR *PUINT;
- typedef VOID FAR *PVOID;
- typedef unsigned short BOOL; /* f */
- typedef BOOL FAR *PBOOL;
- #ifndef TRUE
- #define TRUE 1
- #endif
- #ifndef FALSE
- #define FALSE 0
- #endif
- typedef unsigned short SEL; /* sel */
- typedef SEL FAR *PSEL;
- /*** Useful Helper Macros */
- /* Create untyped far pointer from selector and offset */
- #define MAKEP(sel, off) ((PVOID)MAKEULONG(off, sel))
- /* Extract selector or offset from far pointer */
- #define SELECTOROF(p) (((PUSHORT)&(p))[1])
- #define OFFSETOF(p) (((PUSHORT)&(p))[0])
- /* Cast any variable to an instance of the specified type. */
- #define MAKETYPE(v, type) (*((type far *)&v))
- /* Calculate the byte offset of a field in a structure of type type. */
- #define FIELDOFFSET(type, field) ((SHORT)&(((type *)0)->field))
- /* Combine l & h to form a 32 bit quantity. */
- #define MAKEULONG(l, h) ((ULONG)(((USHORT)(l)) | ((ULONG)((USHORT)(h))) << 16))
- #define MAKELONG(l, h) ((LONG)MAKEULONG(l, h))
- /* Combine l & h to form a 16 bit quantity. */
- #define MAKEUSHORT(l, h) (((USHORT)(l)) | ((USHORT)(h)) << 8)
- #define MAKESHORT(l, h) ((SHORT)MAKEUSHORT(l, h))
- /* Extract high and low order parts of 16 and 32 bit quantity */
- #define LOBYTE(w) LOUCHAR(w)
- #define HIBYTE(w) HIUCHAR(w)
- #define LOUCHAR(w) ((UCHAR)(USHORT)(w))
- #define HIUCHAR(w) ((UCHAR)(((USHORT)(w) >> 8) & 0xff))
- #define LOUSHORT(l) ((USHORT)(ULONG)(l))
- #define HIUSHORT(l) ((USHORT)(((ULONG)(l) >> 16) & 0xffff))
- #define SWAPUSHORT(x) (x=(((x<<8)&0xFF00)|((x>>8)&0x00FF)))
- /*** Common DOS types */
- typedef USHORT HMODULE; /* hmod */
- typedef HMODULE FAR *PHMODULE;
- typedef USHORT PID; /* pid */
- typedef PID FAR *PPID;
- typedef USHORT TID; /* tid */
- typedef TID FAR *PTID;
- typedef VOID FAR *HSEM; /* hsem */
- typedef HSEM FAR *PHSEM;
- /**** DOS FMI Error codes */
- #define ERROR_SEM_TIMEOUT 0xfffc /* Time out happened from the */
- /* semaphore api functions. */
- #define ERROR_SEM_OWNED 0xfffd /* Semaphore is already owned */
- /**** DOS FMI Semaphore functions */
- extern USHORT APIENTRY CMDSemClear(HSEM);
- extern USHORT APIENTRY CMDSemRequest(HSEM, USHORT);
- extern USHORT APIENTRY CMDSemSet(HSEM);
- extern USHORT APIENTRY CMDSemWait(HSEM, USHORT);
- /*** DOS FMI TSR functions */
- extern USHORT APIENTRY CMDGoTSR(ULONG, UCHAR FAR *, UCHAR FAR *);
- extern USHORT APIENTRY CMDStartFG(void);
- extern USHORT APIENTRY CMDStopFG(USHORT);
- /*** DOS FMI Task switching functions */
- extern USHORT APIENTRY RegisterSwitchProc(ULONG);
- /*** Other DOS FMI functions */
- extern USHORT APIENTRY SNAGetVersion(VOID);
- #ifdef __cplusplus
- }
- #endif