Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) ARECA FIRMWARE SPEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) ===================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) Usage of IOP331 adapter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) (All In/Out is in IOP331's view)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 1. Message 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) - InitThread message and return code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 2. Doorbell is used for RS-232 emulation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) ----------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) inDoorBell
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)     bit0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	data in ready
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	zDRIVER DATA WRITE OK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)     bit1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	data out has been read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 	(DRIVER DATA READ OK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) outDooeBell:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)     bit0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	data out ready
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	(IOP331 DATA WRITE OK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)     bit1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	data in has been read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	(IOP331 DATA READ OK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 3. Index Memory Usage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) ---------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) ============   ==========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) offset 0xf00   for RS232 out (request buffer)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) offset 0xe00   for RS232 in  (scratch buffer)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) offset 0xa00   for inbound message code message_rwbuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	       (driver send to IOP331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) offset 0xa00   for outbound message code message_rwbuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	       (IOP331 send to driver)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) ============   ==========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 4. RS-232 emulation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) -------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) Currently 128 byte buffer is used:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) ============   =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 1st uint32_t   Data length (1--124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) Byte 4--127    Max 124 bytes of data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) ============   =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 5. PostQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) All SCSI Command must be sent through postQ:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)     (inbound queue port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	Request frame must be 32 bytes aligned:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	    #bit27--bit31
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 		flag for post ccb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	    #bit0--bit26
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 		real address (bit27--bit31) of post arcmsr_cdb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 		=====   ===================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 		bit31   ==  ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 			0   256 bytes frame
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 			1   512 bytes frame
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 			==  ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		bit30   ==  ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 			0   normal request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 			1   BIOS request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 			==  ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 		bit29   reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 		bit28   reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 		bit27   reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 		=====   ===================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)     (outbount queue port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	Request reply:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	    #bit27--bit31
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 		    flag for reply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	    #bit0--bit26
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 		    real address (bit27--bit31) of reply arcmsr_cdb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 		    =====   =======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 		    bit31   must be 0 (for this type of reply)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 		    bit30   reserved for BIOS handshake
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 		    bit29   reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 		    bit28   ==  ===================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 			    0   no error, ignore AdapStatus/DevStatus/SenseData
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 			    1   Error, error code in AdapStatus/DevStatus/SenseData
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 			    ==  ===================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 		    bit27   reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 		    =====   =======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 6. BIOS request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) All BIOS request is the same with request from PostQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) Except:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) Request frame is sent from configuration space:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	============   ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	offset: 0x78   Request Frame (bit30 == 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	offset: 0x18   writeonly to generate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 		       IRQ to IOP331
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	============   ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) Completion of request::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	(bit30 == 0, bit28==err flag)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 7. Definition of SGL entry (structure)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) --------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 8. Message1 Out - Diag Status Code (????)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) -----------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 9. Message0 message code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) ------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) ======  =================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 0x00    NOP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 0x01    Get Config
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	->offset 0xa00 :for outbound message code message_rwbuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 	(IOP331 send to driver)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	===================== ==========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	Signature             0x87974060(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 	Request len           0x00000200(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	numbers of queue      0x00000100(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 	SDRAM Size            0x00000100(4)-->256 MB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	IDE Channels          0x00000008(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	vendor                40 bytes char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	model                 8 bytes char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 	FirmVer               16 bytes char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	Device Map            16 bytes char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	FirmwareVersion       DWORD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 			      - Added for checking of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 				new firmware capability
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	===================== ==========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 0x02    Set Config
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	->offset 0xa00 :for inbound message code message_rwbuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 	(driver send to IOP331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	========================= ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	Signature                 0x87974063(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	UPPER32 of Request Frame  (4)-->Driver Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	========================= ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 0x03    Reset (Abort all queued Command)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 0x04    Stop Background Activity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 0x05    Flush Cache
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 0x06    Start Background Activity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 	(re-start if background is halted)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 0x07    Check If Host Command Pending
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 	(Novell May Need This Function)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 0x08    Set controller time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	->offset 0xa00   for inbound message code message_rwbuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	(driver to IOP331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 	======   ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	byte 0   0xaa <-- signature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	byte 1   0x55 <-- signature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	byte 2   year (04)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	byte 3   month (1..12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	byte 4   date (1..31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 	byte 5   hour (0..23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	byte 6   minute (0..59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	byte 7   second (0..59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 	======   ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) ======  =================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) RS-232 Interface for Areca Raid Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) ==========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)       The low level command interface is exclusive with VT100 terminal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 1. Sequence of command execution
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) --------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	(A) Header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 		3 bytes sequence (0x5E, 0x01, 0x61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 	(B) Command block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 		variable length of data including length,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 		command code, data and checksum byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 	(C) Return data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 		variable length of data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 2. Command block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	(A) 1st byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 		command block length (low byte)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	(B) 2nd byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 		command block length (high byte)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 		.. Note:: command block length shouldn't > 2040 bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 			  length excludes these two bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 	(C) 3rd byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 		command code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 	(D) 4th and following bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 		variable length data bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	    depends on command code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	(E) last byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	    checksum byte (sum of 1st byte until last data byte)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 3. Command code and associated data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) -----------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) The following are command code defined in raid controller Command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) code 0x10--0x1? are used for system level management,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) no password checking is needed and should be implemented in separate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) well controlled utility and not for end user access.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) Command code 0x20--0x?? always check the password,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) password must be entered to enable these command::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	enum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 		GUI_SET_SERIAL=0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 		GUI_SET_VENDOR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 		GUI_SET_MODEL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 		GUI_IDENTIFY,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 		GUI_CHECK_PASSWORD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 		GUI_LOGOUT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 		GUI_HTTP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 		GUI_SET_ETHERNET_ADDR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 		GUI_SET_LOGO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 		GUI_POLL_EVENT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 		GUI_GET_EVENT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 		GUI_GET_HW_MONITOR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 		//    GUI_QUICK_CREATE=0x20, (function removed)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 		GUI_GET_INFO_R=0x20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 		GUI_GET_INFO_V,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 		GUI_GET_INFO_P,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 		GUI_GET_INFO_S,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 		GUI_CLEAR_EVENT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 		GUI_MUTE_BEEPER=0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 		GUI_BEEPER_SETTING,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 		GUI_SET_PASSWORD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 		GUI_HOST_INTERFACE_MODE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 		GUI_REBUILD_PRIORITY,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 		GUI_MAX_ATA_MODE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 		GUI_RESET_CONTROLLER,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 		GUI_COM_PORT_SETTING,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 		GUI_NO_OPERATION,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 		GUI_DHCP_IP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 		GUI_CREATE_PASS_THROUGH=0x40,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 		GUI_MODIFY_PASS_THROUGH,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 		GUI_DELETE_PASS_THROUGH,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 		GUI_IDENTIFY_DEVICE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 		GUI_CREATE_RAIDSET=0x50,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 		GUI_DELETE_RAIDSET,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 		GUI_EXPAND_RAIDSET,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 		GUI_ACTIVATE_RAIDSET,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 		GUI_CREATE_HOT_SPARE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 		GUI_DELETE_HOT_SPARE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 		GUI_CREATE_VOLUME=0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 		GUI_MODIFY_VOLUME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 		GUI_DELETE_VOLUME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 		GUI_START_CHECK_VOLUME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 		GUI_STOP_CHECK_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) Command description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) ^^^^^^^^^^^^^^^^^^^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) GUI_SET_SERIAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 	Set the controller serial#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 	byte 2            command code 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 	byte 3            password length (should be 0x0f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 	byte 4-0x13       should be "ArEcATecHnoLogY"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 	byte 0x14--0x23   Serial number string (must be 16 bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) GUI_SET_VENDOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 	Set vendor string for the controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 	byte 2            command code 0x11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 	byte 3            password length (should be 0x08)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 	byte 4-0x13       should be "ArEcAvAr"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 	byte 0x14--0x3B   vendor string (must be 40 bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) GUI_SET_MODEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 	Set the model name of the controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 	byte 2            command code 0x12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 	byte 3            password length (should be 0x08)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 	byte 4-0x13       should be "ArEcAvAr"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 	byte 0x14--0x1B   model string (must be 8 bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) GUI_IDENTIFY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 	Identify device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 	byte 2            command code 0x13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 			    return "Areca RAID Subsystem "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) GUI_CHECK_PASSWORD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 	Verify password
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 	byte 2            command code 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 	byte 3            password length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 	byte 4-0x??       user password to be checked
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) GUI_LOGOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 	Logout GUI (force password checking on next command)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 	byte 2            command code 0x15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) GUI_HTTP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 	HTTP interface (reserved for Http proxy service)(0x16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) GUI_SET_ETHERNET_ADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 	Set the ethernet MAC address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 	byte 2            command code 0x17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 	byte 3            password length (should be 0x08)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) 	byte 4-0x13       should be "ArEcAvAr"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 	byte 0x14--0x19   Ethernet MAC address (must be 6 bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) GUI_SET_LOGO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 	Set logo in HTTP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 	byte 2            command code 0x18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 	byte 3            Page# (0/1/2/3) (0xff --> clear OEM logo)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 	byte 4/5/6/7      0x55/0xaa/0xa5/0x5a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 	byte 8            TITLE.JPG data (each page must be 2000 bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 			  .. Note:: page0 1st 2 byte must be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 				    actual length of the JPG file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) GUI_POLL_EVENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 	Poll If Event Log Changed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 	byte 2            command code 0x19
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) GUI_GET_EVENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 	Read Event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 	byte 2            command code 0x1a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 	byte 3            Event Page (0:1st page/1/2/3:last page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) GUI_GET_HW_MONITOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 	Get HW monitor data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) 	byte 2 		  command code 0x1b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 	byte 3 		  # of FANs(example 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 	byte 4 		  # of Voltage sensor(example 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 	byte 5 		  # of temperature sensor(example 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 	byte 6 		  # of power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 	byte 7/8          Fan#0 (RPM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 	byte 9/10         Fan#1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) 	byte 11/12 	  Voltage#0 original value in ``*1000``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 	byte 13/14 	  Voltage#0 value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	byte 15/16 	  Voltage#1 org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 	byte 17/18 	  Voltage#1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 	byte 19/20 	  Voltage#2 org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) 	byte 21/22 	  Voltage#2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 	byte 23 	  Temp#0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 	byte 24 	  Temp#1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 	byte 25 	  Power indicator (bit0   power#0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 			  bit1   power#1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 	byte 26 	  UPS indicator
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) GUI_QUICK_CREATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 	Quick create raid/volume set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) 	================  ==============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 	byte 0,1       	  length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 	byte 2         	  command code 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 	byte 3/4/5/6   	  raw capacity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 	byte 7 		  raid level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 	byte 8 		  stripe size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	byte 9 		  spare
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 	byte 10/11/12/13  device mask (the devices to create raid/volume)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 	================  ==============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)     This function is removed, application like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)     to implement quick create function
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429)     need to use GUI_CREATE_RAIDSET and GUI_CREATE_VOLUMESET function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) GUI_GET_INFO_R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 	Get Raid Set Information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 	byte 2            command code 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 	byte 3            raidset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 	::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 	    typedef struct sGUI_RAIDSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 	    {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 		    BYTE grsRaidSetName[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 		    DWORD grsCapacity;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) 		    DWORD grsCapacityX;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 		    DWORD grsFailMask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 		    BYTE grsDevArray[32];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) 		    BYTE grsMemberDevices;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 		    BYTE grsNewMemberDevices;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 		    BYTE grsRaidState;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 		    BYTE grsVolumes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 		    BYTE grsVolumeList[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 		    BYTE grsRes1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 		    BYTE grsRes2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 		    BYTE grsRes3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 		    BYTE grsFreeSegments;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 		    DWORD grsRawStripes[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 		    DWORD grsRes4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 		    DWORD grsRes5; //     Total to 128 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 		    DWORD grsRes6; //     Total to 128 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 	    } sGUI_RAIDSET, *pGUI_RAIDSET;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) GUI_GET_INFO_V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 	Get Volume Set Information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 	byte 2            command code 0x21
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 	byte 3            volumeset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) 	::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 	    typedef struct sGUI_VOLUMESET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 	    {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) 		    BYTE gvsVolumeName[16]; //     16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 		    DWORD gvsCapacity;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 		    DWORD gvsCapacityX;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 		    DWORD gvsFailMask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 		    DWORD gvsStripeSize;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 		    DWORD gvsNewFailMask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 		    DWORD gvsNewStripeSize;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 		    DWORD gvsVolumeStatus;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 		    DWORD gvsProgress; //     32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 		    sSCSI_ATTR gvsScsi;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) 		    BYTE gvsMemberDisks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 		    BYTE gvsRaidLevel; //     8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 		    BYTE gvsNewMemberDisks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 		    BYTE gvsNewRaidLevel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) 		    BYTE gvsRaidSetNumber;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 		    BYTE gvsRes0; //     4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) 		    BYTE gvsRes1[4]; //     64 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) 	    } sGUI_VOLUMESET, *pGUI_VOLUMESET;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) GUI_GET_INFO_P
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) 	Get Physical Drive Information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) 	byte 2            command code 0x22
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) 	byte 3            drive # (from 0 to max-channels - 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) 	::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) 	    typedef struct sGUI_PHY_DRV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 	    {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) 		    BYTE gpdModelName[40];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) 		    BYTE gpdSerialNumber[20];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) 		    BYTE gpdFirmRev[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) 		    DWORD gpdCapacity;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 		    DWORD gpdCapacityX; //     Reserved for expansion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) 		    BYTE gpdDeviceState;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) 		    BYTE gpdPioMode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 		    BYTE gpdCurrentUdmaMode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) 		    BYTE gpdUdmaMode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) 		    BYTE gpdDriveSelect;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 		    BYTE gpdRaidNumber; //     0xff if not belongs to a raid set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) 		    sSCSI_ATTR gpdScsi;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) 		    BYTE gpdReserved[40]; //     Total to 128 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) 	    } sGUI_PHY_DRV, *pGUI_PHY_DRV;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) GUI_GET_INFO_S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) 	Get System Information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) 	byte 2            command code 0x23
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) 	::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) 	    typedef struct sCOM_ATTR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) 	    {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) 		    BYTE comBaudRate;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) 		    BYTE comDataBits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) 		    BYTE comStopBits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) 		    BYTE comParity;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) 		    BYTE comFlowControl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) 	    } sCOM_ATTR, *pCOM_ATTR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 	    typedef struct sSYSTEM_INFO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) 	    {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 		    BYTE gsiVendorName[40];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 		    BYTE gsiSerialNumber[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) 		    BYTE gsiFirmVersion[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) 		    BYTE gsiBootVersion[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) 		    BYTE gsiMbVersion[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 		    BYTE gsiModelName[8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) 		    BYTE gsiLocalIp[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) 		    BYTE gsiCurrentIp[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 		    DWORD gsiTimeTick;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) 		    DWORD gsiCpuSpeed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) 		    DWORD gsiICache;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) 		    DWORD gsiDCache;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) 		    DWORD gsiScache;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) 		    DWORD gsiMemorySize;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 		    DWORD gsiMemorySpeed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) 		    DWORD gsiEvents;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 		    BYTE gsiMacAddress[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) 		    BYTE gsiDhcp;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 		    BYTE gsiBeeper;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 		    BYTE gsiChannelUsage;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) 		    BYTE gsiMaxAtaMode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 		    BYTE gsiSdramEcc; //     1:if ECC enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) 		    BYTE gsiRebuildPriority;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) 		    sCOM_ATTR gsiComA; //     5 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) 		    sCOM_ATTR gsiComB; //     5 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) 		    BYTE gsiIdeChannels;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) 		    BYTE gsiScsiHostChannels;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) 		    BYTE gsiIdeHostChannels;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) 		    BYTE gsiMaxVolumeSet;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) 		    BYTE gsiMaxRaidSet;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) 		    BYTE gsiEtherPort; //     1:if ether net port supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) 		    BYTE gsiRaid6Engine; //     1:Raid6 engine supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) 		    BYTE gsiRes[75];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) 	    } sSYSTEM_INFO, *pSYSTEM_INFO;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) GUI_CLEAR_EVENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) 	Clear System Event
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) 	byte 2            command code 0x24
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) GUI_MUTE_BEEPER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) 	Mute current beeper
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) 	byte 2            command code 0x30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) GUI_BEEPER_SETTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) 	Disable beeper
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) 	byte 2            command code 0x31
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) 	byte 3            0->disable, 1->enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) GUI_SET_PASSWORD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) 	Change password
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) 	byte 2 		  command code 0x32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) 	byte 3 		  pass word length ( must <= 15 )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) 	byte 4 		  password (must be alpha-numerical)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) GUI_HOST_INTERFACE_MODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) 	Set host interface mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) 	byte 2 		  command code 0x33
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) 	byte 3 		  0->Independent, 1->cluster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) GUI_REBUILD_PRIORITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) 	Set rebuild priority
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) 	byte 2 		  command code 0x34
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) 	byte 3 		  0/1/2/3 (low->high)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) GUI_MAX_ATA_MODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) 	Set maximum ATA mode to be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) 	byte 2 		  command code 0x35
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) 	byte 3 		  0/1/2/3 (133/100/66/33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) GUI_RESET_CONTROLLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) 	Reset Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) 	byte 2            command code 0x36
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) 			  * Response with VT100 screen (discard it)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) GUI_COM_PORT_SETTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) 	COM port setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) 	================  =================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) 	byte 0,1	  length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) 	byte 2 		  command code 0x37
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) 	byte 3 		  0->COMA (term port),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) 			  1->COMB (debug port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) 	byte 4 		  0/1/2/3/4/5/6/7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) 			  (1200/2400/4800/9600/19200/38400/57600/115200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) 	byte 5 		  data bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) 			  (0:7 bit, 1:8 bit   must be 8 bit)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) 	byte 6 		  stop bit (0:1, 1:2 stop bits)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) 	byte 7 		  parity (0:none, 1:off, 2:even)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) 	byte 8 		  flow control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) 			  (0:none, 1:xon/xoff, 2:hardware => must use none)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) 	================  =================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) GUI_NO_OPERATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) 	No operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) 	byte 2            command code 0x38
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) GUI_DHCP_IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) 	Set DHCP option and local IP address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) 	byte 2            command code 0x39
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) 	byte 3            0:dhcp disabled, 1:dhcp enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) 	byte 4/5/6/7      IP address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) GUI_CREATE_PASS_THROUGH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) 	Create pass through disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) 	byte 2 		  command code 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) 	byte 3 		  device #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) 	byte 4 		  scsi channel (0/1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) 	byte 5 		  scsi id (0-->15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) 	byte 6 		  scsi lun (0-->7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) 	byte 7 		  tagged queue (1   enabled)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) 	byte 8 		  cache mode (1   enabled)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) 	byte 9 		  max speed (0/1/2/3/4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) 			  async/20/40/80/160 for scsi)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) 			  (0/1/2/3/4, 33/66/100/133/150 for ide  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) GUI_MODIFY_PASS_THROUGH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) 	Modify pass through disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) 	byte 2 		  command code 0x41
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) 	byte 3 		  device #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) 	byte 4 		  scsi channel (0/1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) 	byte 5 		  scsi id (0-->15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) 	byte 6 		  scsi lun (0-->7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) 	byte 7 		  tagged queue (1   enabled)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) 	byte 8 		  cache mode (1   enabled)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) 	byte 9 		  max speed (0/1/2/3/4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) 			  async/20/40/80/160 for scsi)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) 			  (0/1/2/3/4, 33/66/100/133/150 for ide  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) GUI_DELETE_PASS_THROUGH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) 	Delete pass through disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) 	byte 2            command code 0x42
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) 	byte 3            device# to be deleted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) GUI_IDENTIFY_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) 	Identify Device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) 	byte 2            command code 0x43
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) 	byte 3            Flash Method
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) 			  (0:flash selected, 1:flash not selected)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) 	byte 4/5/6/7      IDE device mask to be flashed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) 			  .. Note:: no response data available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) GUI_CREATE_RAIDSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) 	Create Raid Set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) 	byte 2            command code 0x50
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) 	byte 3/4/5/6      device mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) 	byte 7-22         raidset name (if byte 7 == 0:use default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) GUI_DELETE_RAIDSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) 	Delete Raid Set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) 	byte 2            command code 0x51
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) 	byte 3            raidset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) GUI_EXPAND_RAIDSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) 	Expand Raid Set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) 	byte 2            command code 0x52
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) 	byte 3            raidset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) 	byte 4/5/6/7      device mask for expansion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) 	byte 8/9/10       (8:0 no change, 1 change, 0xff:terminate,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) 			  9:new raid level,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) 			  10:new stripe size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) 			  0/1/2/3/4/5->4/8/16/32/64/128K )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) 	byte 11/12/13     repeat for each volume in the raidset
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) GUI_ACTIVATE_RAIDSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) 	Activate incomplete raid set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) 	byte 2            command code 0x53
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) 	byte 3            raidset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) GUI_CREATE_HOT_SPARE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) 	Create hot spare disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) 	byte 2            command code 0x54
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) 	byte 3/4/5/6      device mask for hot spare creation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) GUI_DELETE_HOT_SPARE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) 	Delete hot spare disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) 	byte 2            command code 0x55
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) 	byte 3/4/5/6      device mask for hot spare deletion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) GUI_CREATE_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) 	Create volume set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) 	byte 2            command code 0x60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) 	byte 3            raidset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) 	byte 4-19         volume set name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) 			  (if byte4 == 0, use default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) 	byte 20-27        volume capacity (blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) 	byte 28 	  raid level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) 	byte 29 	  stripe size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) 			  (0/1/2/3/4/5->4/8/16/32/64/128K)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) 	byte 30 	  channel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) 	byte 31 	  ID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) 	byte 32 	  LUN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) 	byte 33 	  1 enable tag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) 	byte 34 	  1 enable cache
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) 	byte 35 	  speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) 			  (0/1/2/3/4->async/20/40/80/160 for scsi)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) 			  (0/1/2/3/4->33/66/100/133/150 for IDE  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) 	byte 36 	  1 to select quick init
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) GUI_MODIFY_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) 	Modify volume Set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) 	byte 2            command code 0x61
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) 	byte 3            volumeset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) 	byte 4-19         new volume set name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) 			  (if byte4 == 0, not change)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) 	byte 20-27        new volume capacity (reserved)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) 	byte 28 	  new raid level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) 	byte 29 	  new stripe size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) 			  (0/1/2/3/4/5->4/8/16/32/64/128K)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) 	byte 30 	  new channel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) 	byte 31 	  new ID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) 	byte 32 	  new LUN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) 	byte 33 	  1 enable tag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) 	byte 34 	  1 enable cache
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) 	byte 35 	  speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) 			  (0/1/2/3/4->async/20/40/80/160 for scsi)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) 			  (0/1/2/3/4->33/66/100/133/150 for IDE  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) GUI_DELETE_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) 	Delete volume set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) 	byte 2            command code 0x62
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) 	byte 3            volumeset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) GUI_START_CHECK_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) 	Start volume consistency check
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) 	byte 2            command code 0x63
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) 	byte 3            volumeset#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) GUI_STOP_CHECK_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) 	Stop volume consistency check
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) 	byte 0,1          length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) 	byte 2            command code 0x64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) 	================  =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) 4. Returned data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) (A) Header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877)     3 bytes sequence (0x5E, 0x01, 0x61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) (B) Length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879)     2 bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880)     (low byte 1st, excludes length and checksum byte)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) (C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882)     status or data:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) 	1) If length == 1 ==> 1 byte status code::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) 		#define GUI_OK                    0x41
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) 		#define GUI_RAIDSET_NOT_NORMAL    0x42
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) 		#define GUI_VOLUMESET_NOT_NORMAL  0x43
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) 		#define GUI_NO_RAIDSET            0x44
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) 		#define GUI_NO_VOLUMESET          0x45
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) 		#define GUI_NO_PHYSICAL_DRIVE     0x46
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) 		#define GUI_PARAMETER_ERROR       0x47
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) 		#define GUI_UNSUPPORTED_COMMAND   0x48
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) 		#define GUI_DISK_CONFIG_CHANGED   0x49
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) 		#define GUI_INVALID_PASSWORD      0x4a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) 		#define GUI_NO_DISK_SPACE         0x4b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) 		#define GUI_CHECKSUM_ERROR        0x4c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) 		#define GUI_PASSWORD_REQUIRED     0x4d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) 	2) If length > 1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) 		data block returned from controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) 		and the contents depends on the command code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) (E) Checksum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906)     checksum of length and status or data byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907)