Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
elxu_dwnld.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011-2015, Emulex
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its contributors
16  * may be used to endorse or promote products derived from this software
17  * without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  *
31  */
32 
33 #ifndef ELXU_DWNLD_H_
34 #define ELXU_DWNLD_H_
35 
36 #include <sys/stat.h>
37 #include "elxu_ufi.h"
38 
39 /* Endian macros are all based on whether two bytes or four bytes are swapped */
40 #define SWAP_2BYTES(x) ((((x) & 0xFF00 ) >> 8) | (((x) & 0x00FF ) << 8))
41 #define SWAP_4BYTES(x) (SWAP_2BYTES(((x) & 0xFFFF0000) >> 16) | (SWAP_2BYTES((x) & 0xFFFF) << 16))
42 
43 
44 enum {
49 };
50 
51 typedef enum {
56 } fFormat_t;
57 
58 typedef struct Dwnld_File_Descriptor {
59  int fd;
60  char file_name[128];
61  uint8_t *mem_p;
62  int len;
63  struct stat st;
64 
65 #define HBA_FILE_LANCER 1
66 #define HBA_FILE_SKYHAWK 2
67 #define HBA_FILE_PRISM 3
68  int hba_file_type; /* Skyhawk, Lancer,Prism */
69 
70 #define FILE_TYPE_UFI 1
71 #define FILE_TYPE_GRP 2
72  int file_type;
73 
78 
80 
83 
84 extern int file_handler (elxu_device_t *device_p, char const *file_name_p, int download_flag);
85 extern int hba_dump_upload (elxu_device_t *device_p, char const *file_name_p);
86 #endif /* ELXU_DWNLD_H_ */
int hba_dump_upload(elxu_device_t *device_p, char const *file_name_p)
void init_image_table(dwnld_file_desc_t *fdesc)
fFormat_t
Definition: elxu_dwnld.h:51
void display_ufi_flash_directory(dwnld_file_desc_t *fdesc)
Displays content of UFI flash directory header.
Definition: elxu_dwnld.c:309
flash_directory_t * ufi_flash_hdr
Definition: elxu_dwnld.h:76
int file_handler(elxu_device_t *device_p, char const *file_name_p, int action)
File manipulating functionality.
Definition: elxu_dwnld.c:966
uint8_t * mem_p
Definition: elxu_dwnld.h:61
ufi_image_header_t img_hdr
Definition: elxu_dwnld.h:75
ufi_file_header_t ufi_hdr
Definition: elxu_dwnld.h:74