#ifndef __SKEYLINK_H #define __SKEYLINK_H #ifndef __SKEYDRV_H #define __SKEYDRV_H #ifdef __cplusplus extern "C" { #endif /***************************************************************************/ /* Smartkey mode codes */ #define SCRAMBLING_MODE 's' #define READING_MODE 'r' #define WRITING_MODE 'w' #define FIXING_MODE 'f' #define LOCATING_MODE 'l' #define COMPARING_MODE 'c' #define PROGRAMMING_MODE 'p' #define MODEL_READING_MODE 'm' #define ENCRYPTING_MODE 'e' #define SERIAL_NUMBER_READING_MODE 'n' #define FIX_READING_MODE 'x' #define EXT_MODEL_READING_MODE 'h' #define FAIL_COUNTER_READING_MODE 'a' #define BLOCK_READING_MODE ('b' | ((unsigned)'r' << 8)) #define BLOCK_WRITING_MODE ('b' | ((unsigned)'w' << 8)) /***************************************************************************/ /* Smartkey models */ #define SKEY_NONE '0' /* No Smartkey */ #define SKEY_FX '1' /* Smartkey mod. FX */ #define SKEY_PR '2' /* Smartkey mod. PR */ #define SKEY_EP '3' /* Smartkey mod. EP */ #define SKEY_SP '9' /* Smartkey mod. SP */ #define SKEY_NET 'A' /* Smartkey mod. NET */ /***************************************************************************/ /* Return codes */ #define ST_OK 0 /* No errors */ #define ST_NONE_KEY -1 /* No Smartkey present */ #define ST_SYNT_ERR -2 /* Syntax error */ #define ST_LABEL_FAILED -3 /* Uncorrect label */ #define ST_PW_DATA_FAILED -4 /* Uncorrect password or data */ #define ST_HW_FAILURE -20 /* Smartkey damaged */ /***************************************************************************/ /* Field length */ #define LABEL_LENGTH 16 #define PASSWORD_LENGTH 16 #define DATA_LENGTH 64 #define EXTENDED_DATA_LENGTH 352 #define SCRAMBLE_LENGTH 8 /***************************************************************************/ /* Communication structure definition */ typedef struct smartkey { short lpt; short command; unsigned char label[LABEL_LENGTH]; unsigned char password[PASSWORD_LENGTH]; unsigned char data[DATA_LENGTH]; short fail_counter; short status; unsigned char ext_data[EXTENDED_DATA_LENGTH]; } SKEY_DATA; /***************************************************************************/ /* Interface function prototype */ int clink(SKEY_DATA*); #ifdef __cplusplus } #endif #endif #endif