OneCore⢠Storage SDK Release 11.2
User Space iSCSI Target RAMD Driver (Uspace ocs_iscsi_ramd)
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
ocs_hal_workaround.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
/**
34
* @file
35
* HAL workarounds
36
*
37
* This file contains the declarations that allow run-time selection of workarounds
38
* based on the asic type and revision, and range of fw revision.
39
*/
40
41
#if !defined(__OCS_HAL_WORKAROUND_H__)
42
#define __OCS_HAL_WORKAROUND_H__
43
44
/**
45
* @brief pack fw revision values into a single uint32_t
46
*/
47
48
/* Two levels of macro needed due to expansion */
49
#define HAL_FWREV(a,b,c,d) (((a) << 28) | ((b) << 24) | ((c) << 8) | (d))
50
#define HAL_FWREV_1(x) HAL_FWREV(x)
51
52
#define OCS_FW_VER_STR2(a,b,c,d) #a "." #b "." #c "." #d
53
#define OCS_FW_VER_STR(x) OCS_FW_VER_STR2(x)
54
55
56
typedef
struct
{
57
uint32_t
fwrev
;
58
59
/* Control Declarations here ...*/
60
61
uint8_t
fw_version_too_low
;
62
63
}
ocs_hal_workaround_t
;
64
65
extern
void
ocs_hal_workaround_setup
(
struct
ocs_hal_s *hal);
66
67
#endif // __OCS_HAL_WORKAROUND_H__
ocs_hal_workaround_t::fwrev
uint32_t fwrev
Definition:
ocs_hal_workaround.h:57
ocs_hal_workaround_t::fw_version_too_low
uint8_t fw_version_too_low
Definition:
ocs_hal_workaround.h:61
ocs_hal_workaround_setup
void ocs_hal_workaround_setup(struct ocs_hal_s *hal)
Setup HAL runtime workarounds.
Definition:
ocs_hal_workaround.c:173
ocs_hal_workaround_t
Definition:
ocs_hal_workaround.h:56
common
ihal
ocs_hal_workaround.h