/disk1/p.uno. git-svn-id: svn://10.65.10.50/trunk@1811 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			173 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __HLAPI_H
 | 
						|
#define __HLAPI_H
 | 
						|
 | 
						|
/****************************************************************************/
 | 
						|
/**                                                                        **/
 | 
						|
/**                           Hardlock E-Y-E                               **/
 | 
						|
/**                    API-Structures and definitions                      **/
 | 
						|
/**                                                                        **/
 | 
						|
/**   This file contains some helpful defines to access a Hardlock using   **/
 | 
						|
/**   the application programing interface (API) for Hardlock E-Y-E.       **/
 | 
						|
/**                                                                        **/
 | 
						|
/**                     (c) 1992 by ///FAST Electronic                     **/
 | 
						|
/**                                                                        **/
 | 
						|
/**                                                                        **/
 | 
						|
/**              Authors : Thomas Schr”ter                                 **/
 | 
						|
/**                        Henri Volk                                      **/
 | 
						|
/**              Version : 3.0                                             **/
 | 
						|
/**              Date    : 01-Sep-1992                                     **/
 | 
						|
/**                                                                        **/
 | 
						|
/****************************************************************************/
 | 
						|
 | 
						|
#define EYECAST (char   huge *)
 | 
						|
 | 
						|
/* -------------------------------- */
 | 
						|
/* Definitions and API structures : */
 | 
						|
/* -------------------------------- */
 | 
						|
typedef unsigned char  Byte;
 | 
						|
typedef   signed short Word;
 | 
						|
typedef unsigned long  Long;
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  Word Use_Key;
 | 
						|
  Byte Key[8];
 | 
						|
}
 | 
						|
DES_MODE;
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
  Word ModAd;                      /* Moduleaddress EYE      */
 | 
						|
  Word Register;                   /* Memory register adress */
 | 
						|
  Word Value;                      /* Memory value           */
 | 
						|
  Byte Reserved[4];
 | 
						|
}
 | 
						|
EYE_MODE;
 | 
						|
 | 
						|
typedef union
 | 
						|
{
 | 
						|
  DES_MODE Des;
 | 
						|
  EYE_MODE Eye;
 | 
						|
}
 | 
						|
HARDWARE;
 | 
						|
 | 
						|
typedef struct hl_api
 | 
						|
{
 | 
						|
  Byte      API_Version_ID[2];     /* Version                    */
 | 
						|
  Word      API_Options[2];        /* API Optionflags            */
 | 
						|
  Word      ModID;                 /* Modul-ID (EYE = 0...)      */
 | 
						|
  HARDWARE  Module;                /* Hardware type              */
 | 
						|
  void far *Data;                  /* Pointer to cipher data     */
 | 
						|
  Word      Bcnt;                  /* Number of blocks           */
 | 
						|
  Word      Function;              /* Function number            */
 | 
						|
  Word      Status;                /* Actual status              */
 | 
						|
  Word      Remote;                /* Remote or local??          */
 | 
						|
  Word      Port;                  /* Port address if local      */
 | 
						|
  Word      Speed;                 /* Speed of port if local     */
 | 
						|
  Word      NetUsers;              /* Current Logins (HLSERVER)  */
 | 
						|
  Byte      ID_Ref[8];             /* Referencestring            */
 | 
						|
  Byte      ID_Verify[8];          /* Encrypted ID_Ref           */
 | 
						|
  Long      Task_ID;               /* Multitasking program ID    */
 | 
						|
  Byte      Reserved[200];         /* Reserved area              */
 | 
						|
}
 | 
						|
HL_API;
 | 
						|
 | 
						|
/* ------------- */
 | 
						|
/* Module-ID's : */
 | 
						|
/* ------------- */
 | 
						|
#define EYE_DONGLE       0         /* Hardlock E-Y-E             */
 | 
						|
#define DES_DONGLE       1         /* FAST DES                   */
 | 
						|
 | 
						|
/* --------------------- */
 | 
						|
/* API function calls  : */
 | 
						|
/* --------------------- */
 | 
						|
#define API_INIT            0         /* Init API structure      */
 | 
						|
#define API_DOWN            1         /* Free API structure      */
 | 
						|
#define API_FORCE_DOWN      31        /* Force deinintialization */
 | 
						|
#define API_MULTI_SHELL_ON  2         /* MTS is enabled          */
 | 
						|
#define API_MULTI_SHELL_OFF 3         /* MTS is disabled         */
 | 
						|
#define API_MULTI_ON        4         /* Enable MTS              */
 | 
						|
#define API_MULTI_OFF       5         /* Disable  MTS            */
 | 
						|
#define API_AVAIL           6         /* Dongle available?       */
 | 
						|
#define API_LOGIN           7         /* Login dongle server     */
 | 
						|
#define API_LOGOUT          8         /* Logout dongle server    */
 | 
						|
#define API_INFO            9         /* Get API informations    */
 | 
						|
 | 
						|
/* --------------------------- */
 | 
						|
/* Data and memory functions : */
 | 
						|
/* --------------------------- */
 | 
						|
#define API_KEYE             11        /* Use KEYE for encryption         */
 | 
						|
#define API_READ             20        /* Read one word of dongle EEPROM  */
 | 
						|
#define API_WRITE            21        /* Write one word of dongle EEPROM */
 | 
						|
#define API_READ_BLOCK       23        /* Read EEPROM in one block        */
 | 
						|
#define API_WRITE_BLOCK      24        /* Write EEPROM in one block       */
 | 
						|
#define API_GET_ID_KEY       30        /* Encrypt ID_Ref to ID_Verify     */
 | 
						|
#define API_ABORT            53        /* Critical Error Abort            */
 | 
						|
 | 
						|
/* -------------------- */
 | 
						|
/* Dongle access mode : */
 | 
						|
/* -------------------- */
 | 
						|
#define LOCAL_DEVICE     1         /* Query local HL only        */
 | 
						|
#define NET_DEVICE       2         /* Query remote HL only       */
 | 
						|
#define DONT_CARE        3         /* Query local or remote HL   */
 | 
						|
 | 
						|
/* ------------------ */
 | 
						|
/* API Status Codes : */
 | 
						|
/* ------------------ */
 | 
						|
#define STATUS_OK         0         /* API call was succesfull    */
 | 
						|
#define NOT_INIT          1         /* DONGLE not initialized     */
 | 
						|
#define ALREADY_INIT      2         /* Already initialized        */
 | 
						|
#define UNKNOWN_DONGLE    3         /* Device not supported       */
 | 
						|
#define UNKNOWN_FUNCTION  4         /* Function not supported     */
 | 
						|
#define NO_DONGLE         7         /* No device available        */
 | 
						|
#define NETWORK_ERROR     8         /* A network error occured    */
 | 
						|
#define NO_ACCESS         9         /* No device available        */
 | 
						|
#define INVALID_PARAM    10         /* A wrong parameter occured  */
 | 
						|
#define VERSION_MISMATCH 11         /* HL-Server not API version  */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
  /* --------------------- */
 | 
						|
  /* Function prototypes : */
 | 
						|
  /* --------------------- */
 | 
						|
  static int CALL_API      (HL_API far *as);
 | 
						|
  Word far   HL_LOGIN      (Word ModAd, Word Access, char * RefKey, char * VerKey);
 | 
						|
  Word far   HL_LOGOUT     (void);
 | 
						|
  Word far   HL_AVAIL      (void);
 | 
						|
  Word far   HL_PORTINF    (void);
 | 
						|
  Word far   HL_ACCINF     (void);
 | 
						|
  Word far   HL_USERINF    (void);
 | 
						|
  Word far   HL_MAXUSER    (void);
 | 
						|
  Word far   HL_MEMINF     (void);
 | 
						|
  Word far   HL_CODE       (void far *Data, Word Count);
 | 
						|
  Word far   HL_WRITE      (Word Register,  Word Value);
 | 
						|
  Word far   HL_READ       (Word Register, int far *Value);
 | 
						|
  char far * HL_GET_ID     (char * id_ref);
 | 
						|
  Word far   HL_READBL     (char * Eeprom);
 | 
						|
  Word far   HL_WRITEBL    (char * Eeprom);
 | 
						|
  Word far   HL_ABORT      (void);
 | 
						|
  Word far   HL_VERSION    (void);
 | 
						|
 | 
						|
  /****************************************************************************/
 | 
						|
  /****************************************************************************/
 | 
						|
  /* The following functions map the old Hardlock Calls on the new API. These */
 | 
						|
  /* functions are defined only for compatibility reasons.                    */
 | 
						|
  /* !!! Don't mix old and new functions. Don't use if it is not necessary.!!!*/
 | 
						|
  /****************************************************************************/
 | 
						|
  /****************************************************************************/
 | 
						|
  void far   HL_ON         (int Port, Word ModAd);
 | 
						|
  void far   HL_OFF        (int Port);
 | 
						|
  int  far   K_EYE         (int Port, char huge *Inp, int BlkCnt);
 | 
						|
  void far   HL_WR         (int Port, int Register, Word Val);
 | 
						|
  Word far   HL_RD         (int Port, int Register);
 | 
						|
  void far   INT_ON        (void);
 | 
						|
  void far   INT_OFF       (void);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |