/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
|