|
|
1.1 ! root 1: #if !defined( __NASI_H ) ! 2: #define __NASI_H ! 3: ! 4: /* ! 5: * _NASI.H 5.20A June 8, 1995 ! 6: * ! 7: * The Greenleaf Comm Library ! 8: * ! 9: * Copyright (C) 1985-1995 Greenleaf Software Inc. All Rights Reserved. ! 10: * ! 11: * NOTES ! 12: * ! 13: * This include file contains the definitions for the private ! 14: * functions used by the library when using the NASI driver. ! 15: * ! 16: * MODIFICATIONS ! 17: * ! 18: * June 8, 1995 5.20A : Initial release ! 19: * ! 20: */ ! 21: #if !defined( GF_X16 ) && !defined( GF_X32 ) && !defined( GF_WIN32 ) ! 22: ! 23: typedef struct { ! 24: char server_name[ 9 ]; ! 25: char general_port_name[ 9 ]; ! 26: char specific_port_name[ 15 ]; ! 27: char service_name[ 15 ]; ! 28: char session_name[ 17 ]; ! 29: short int vc; ! 30: short int line_status; ! 31: char pconfig[ 15 ]; ! 32: } NASI_PORT; ! 33: ! 34: #ifdef __cplusplus ! 35: extern "C" { ! 36: #endif ! 37: ! 38: /* ! 39: * These are the internal Level 1 nasi routines. They usually have ! 40: * different implementations under DOS and Windows, although there ! 41: * are a couple cases where they are close enough to be co-resident ! 42: * with a bunch of #ifdefs ! 43: */ ! 44: ! 45: int GF_CONV _DumpPortStatusNasi( PORT *port, PORT_DUMPER printer ); ! 46: int GF_CONV _NasiSetServiceName( short int vc, char GF_DLL_FAR *name ); ! 47: int GF_CONV _NasiAllocateVc( short int GF_DLL_FAR *pvc ); ! 48: int GF_CONV _NasiDisconnectVc( unsigned short int vc ); ! 49: int GF_CONV _AttachNasi( NASI_PORT GF_DLL_FAR *np ); ! 50: void GF_CONV _NasiParsePortName( NASI_PORT GF_DLL_FAR *nasi_port, char GF_DLL_FAR *name ); ! 51: ! 52: /* ! 53: * If you are running under DOS, I access all of the NASI services ! 54: * with simple calls to int86x(). Things aren't so nice under windows. ! 55: * I have to load up a batch of function pointers. These function ! 56: * pointers have horrible prototypes, which makes casting away all ! 57: * my errors really hard. But here is one way to get the job done: ! 58: * create a customized typedef for each of the function types. ! 59: */ ! 60: ! 61: #ifdef GF_WINDOWS ! 62: typedef WORD (FAR PASCAL _loadds * SET_SESSION_NAME)(char far *); ! 63: typedef WORD (FAR PASCAL _loadds * ALLOCATE_VC)(short int far *pvc); ! 64: typedef WORD (FAR PASCAL _loadds * QUERY_NAME_SERVICE)(short int vc, ! 65: short int Length, ! 66: char far *pBuffer, ! 67: char QueryType); ! 68: typedef WORD (FAR PASCAL _loadds * DISCONNECT)(short int vc); ! 69: typedef WORD (FAR PASCAL _loadds * INITIALIZE)(short int vc, ! 70: char far *pConfig, ! 71: char far *pPort ); ! 72: typedef WORD (FAR PASCAL _loadds * SET_SERVICE_NAME)(unsigned short vc, ! 73: char far *pServiceName); ! 74: typedef WORD (FAR PASCAL _loadds *FLUSH_TX_BUFFER)(unsigned short int vc); ! 75: typedef WORD (FAR PASCAL _loadds *GET_TX_STATUS)(unsigned short int vc, ! 76: char far *pXStatus, ! 77: char far *pBoardStat); ! 78: typedef WORD (FAR PASCAL _loadds *GET_RX_STATUS)(unsigned short int vc, ! 79: char far *pXStatus); ! 80: typedef WORD (FAR PASCAL _loadds *GET_EXTERNAL_STATUS)(unsigned short int vc, ! 81: char far *pStatus); ! 82: typedef WORD (FAR PASCAL _loadds *READ_BLOCK)(unsigned short int vc, ! 83: short unsigned int far *pLength, ! 84: char far *pBuffer); ! 85: typedef WORD (FAR PASCAL _loadds *WRITE_BLOCK)(unsigned short int vc, ! 86: unsigned short int far *pLength, ! 87: char far *pBuffer); ! 88: typedef WORD (FAR PASCAL _loadds *CONTROL_REQUEST)(unsigned short int vc, ! 89: char RequestType, ! 90: char far *pBuffer); ! 91: typedef WORD (FAR PASCAL _loadds *GET_SERVER_NAME)(unsigned short int vc, ! 92: char far *pServerName); ! 93: typedef WORD (FAR PASCAL _loadds *GET_GENERAL_NAME)(unsigned short int vc, ! 94: char far *pGeneralName); ! 95: typedef WORD (FAR PASCAL _loadds *GET_SERVICE_NAME)(unsigned short int vc, ! 96: char far *pServiceName); ! 97: typedef WORD (FAR PASCAL _loadds *GET_SPECIFIC_NAME)(unsigned short int vc, ! 98: char far *pServiceName); ! 99: typedef WORD (FAR PASCAL _loadds *GET_SESSION_NAME)(char far *pSessionName); ! 100: typedef WORD (FAR PASCAL _loadds *GET_STATUS)(unsigned short int vc, ! 101: unsigned short int far *pStatus ); ! 102: ! 103: /* ! 104: * And here are those function pointer defintions. ! 105: * At this time, all of these guys are set to 0 on startup. ! 106: * It would probably be better to point them to routines ! 107: * that return error codes. ! 108: */ ! 109: ! 110: extern SET_SESSION_NAME _nasi_set_session_name; ! 111: extern ALLOCATE_VC _nasi_allocate_vc; ! 112: extern QUERY_NAME_SERVICE _nasi_query_name_service; ! 113: extern DISCONNECT _nasi_disconnect_vc; ! 114: extern INITIALIZE _nasi_initialize; ! 115: extern SET_SERVICE_NAME _nasi_set_service_name; ! 116: extern FLUSH_TX_BUFFER _nasi_flush_tx_buffer; ! 117: extern GET_TX_STATUS _nasi_get_tx_status; ! 118: extern GET_RX_STATUS _nasi_get_rx_status; ! 119: extern GET_EXTERNAL_STATUS _nasi_get_external_status; ! 120: extern READ_BLOCK _nasi_read; ! 121: extern WRITE_BLOCK _nasi_write; ! 122: extern CONTROL_REQUEST _nasi_control_request; ! 123: extern GET_SERVER_NAME _nasi_get_server_name; ! 124: extern GET_GENERAL_NAME _nasi_get_general_name; ! 125: extern GET_SERVICE_NAME _nasi_get_service_name; ! 126: extern GET_SPECIFIC_NAME _nasi_get_specific_name; ! 127: extern GET_SESSION_NAME _nasi_get_session_name; ! 128: extern GET_STATUS _nasi_get_status; ! 129: ! 130: #endif ! 131: ! 132: #ifdef __cplusplus ! 133: }; ! 134: #endif ! 135: ! 136: #endif /* #if !defined( GF_X16 ) && !defined( GF_X32 ) && !defined( GF_WIN32 ) */ ! 137: ! 138: #endif /* #if !defined( __NASI_H ) */ ! 139:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.