versadac  1
versadac - Scalable Recorder Firmware
fsecurity.h
1 /*******************************************************************************
2 *
3 * Copyright (c) 2010 Invensys Eurotherm
4 *
5 * Project : DEV1313 Nano Recorder
6 * FileName : fsecurity.h
7 * Author : Steve Robinson
8 * Created : 09/03/2010
9 * Description : Header file for Feature Security
10 *
11 *******************************************************************************/
12 //#ifndef FSECURITY_H
13 //#define FSECURITY_H
14 
15 /***********************/
16 /* DEFINES */
17 /***********************/
18 #define FSECURITY_DEBUG 0
19 
20 #define FS_FEATURE_WORD1 0
21 #define FS_FEATURE_WORD2 1
22 #define FS_FEATURE_WORD3 2
23 
24 /* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING */
25 /* PLEASE REMEMBER THAT UPPER BYTE IS A MIRROR OF LOWER BYTE */
26 #define FS_NO_FEATURES 0xFF00 /* all features disabled */
27 #define FS_ALL_FEATURES1 0x00FF /* enables all 'word1' features */
28 #define FS_ALL_FEATURES1_FOR_IDM 0x02FD /* enables all 'word1' features, except SecMan option */
29 #define FS_ALL_FEATURES2 0x00FF /* enables all 'word2' (application) features */
30 #define FS_ALL_FEATURES3 0x00FF /* enables all 'word3' features */
31 #define FS_ALL_FEATURES3_FOR_IDM 0x18E7 /* enables all 'word3' features , except Auditor Pack */
32 
33 /* Feature Word 1 defines */
34 #define FS_BATCH_MASK 0x0001
35 #define FS_SECURITY_MANAGER_MASK 0x0002
36 #define FS_MODBUS_MASTER_MASK 0x0004
37 #define FS_ETHERNET_IP_MASK 0x0008
38 #define FS_PROFINET_IO_MASK 0x0010
39 #define FS_ZIRCONIA_MASK 0x0020
40 #define FS_WEB_SERVER_FULL_MASK 0x0040
41 #define FS_TOOLKIT_MASK 0x0080
42 
43 /* Feature Word 2 (application) defines */
44 #define FS_MASS_FLOW_MASK 0x0001
45 #define FS_SATURATED_STEAM_MASK 0x0002
46 #define FS_FLOW_BUNDLE_MASK 0x0003 /* Mass Flow and Saturated Steam */
47 #define FS_HUMIDITY_MASK 0x0004
48 #define FS_STERILISER_MASK 0x0005
49 #define FS_MKT_MASK 0x0006
50 #define FS_ALL_APPLICATIONS 0x00FF
51 
52 /* Feature Word 3 defines */
53 #define FS_GROUPS_MASK 0x0007
54 #define FS_MAX_GROUPS_OPTIONS 5
55 #define FS_AUDIT_TRAIL_MASK 0x0018
56 #define FS_MAX_AUDIT_TRAIL_OPTIONS 3
57 #define FS_MATHS_MASK 0x0060
58 #define FS_MAX_MATHS_OPTIONS 3
59 
60 enum
61 {
62  NO_AUDIT_TRAIL,
63  AUDIT_TRAIL,
64  AUDIT_21CFR11
65 };
66 
67 /***********************/
68 /* INTERFACE FUNCTIONS */
69 /***********************/
70 extern int32 fs_generate_passcode(uint8 word);
71 extern bool fs_generate_feature_word(int32 passcode, uint8 word);
72 #ifdef ITOOLS
73 extern bool fs_generate_feature_word_itools(int32 passcode, uint16 versionid, uint16 serialnumber, uint8 word);
74 #endif
75 extern bool fs_decode_passcode(int32 passcode, uint16 versionid, uint16 serialnumber, uint16* pfeaturecode, uint8 word);
76 extern void fs_set_feature_word(uint16 features, uint8 word);
77 extern uint16* fs_get_feature_word(uint8 word);
78 extern void fs_set_feature_write_req_flag(bool set, uint8 word);
79 extern bool fs_get_feature_write_req_flag(uint8 word);
80 extern bool fs_zirconia_enabled(void);
81 extern bool fs_modbus_master_enabled(void);
82 extern bool fs_ethernetip_enabled(void);
83 extern bool fs_complex_loop_enabled(void);
84 extern bool fs_toolkit_enabled(void);
85 extern bool fs_mass_flow_enabled(void);
86 extern bool fs_saturated_steam_enabled(void);
87 extern bool fs_humidity_enabled(void);
88 extern bool fs_steriliser_enabled(void);
89 extern bool fs_batch_enabled(void);
90 extern bool fs_mkt_enabled(void);
91 extern bool fs_block_is_enabled(uint8 cl);
92 extern uint8 fs_num_enabled(uint8 cl);
93 extern uint8 fs_num_groups_enabled(void);
94 extern uint8 fs_audit_trail_level(void);
95 extern uint8 fs_num_maths_enabled(void);
96 extern bool fs_profinetio_enabled(void);
97 
98 // **** 2013/03/20 Ticket #2491 - This option (FS_WEB_SERVER_FULL_MASK) is currently not used - if you turn
99 // this on, YOU MUST ENABLE the appropriate code in the IDM - search for above ticket number
100 extern bool fs_web_server_full_enabled(void);
101 
102 extern bool fs_security_manager_tool_enabled(void);
103 
104 //#endif
105 
106 
107 
108