iPXE
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
Data Structure Index
+
Data Fields
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
b
d
i
p
s
t
u
v
x
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
+
Enumerations
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
drivers
infiniband
mlx_utils
mlx_lib
mlx_reg_access
mlx_reg_access.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 Mellanox Technologies Ltd.
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation; either version 2 of the
7
* License, or any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but
10
* WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17
* 02110-1301, USA.
18
*/
19
20
FILE_LICENCE
( GPL2_OR_LATER );
21
22
#ifndef MLX_REG_ACCESS_H_
23
#define MLX_REG_ACCESS_H_
24
25
#include "../../include/public/mlx_icmd.h"
26
27
#define REG_ACCESS_MAX_REG_SIZE 236
28
29
typedef
enum
{
30
REG_ACCESS_READ
= 1,
31
REG_ACCESS_WRITE
= 2,
32
}
REG_ACCESS_OPT
;
33
34
#define REG_ID_NVDA 0x9024
35
#define REG_ID_NVDI 0x9025
36
#define REG_ID_NVIA 0x9029
37
#define REG_ID_MLCR 0x902b
38
#define REG_ID_NVQC 0x9030
39
#define REG_ID_MFRL 0x9028
40
#define REG_ID_PTYS 0x5004
41
#define REG_ID_PMTU 0x5003
42
43
struct
operation_tlv
{
44
mlx_uint32
reserved0
:8;
/* bit_offset:0 */
/* element_size: 8 */
45
mlx_uint32
status
:7;
/* bit_offset:8 */
/* element_size: 7 */
46
mlx_uint32
dr
:1;
/* bit_offset:15 */
/* element_size: 1 */
47
mlx_uint32
len
:11;
/* bit_offset:16 */
/* element_size: 11 */
48
mlx_uint32
Type
:5;
/* bit_offset:27 */
/* element_size: 5 */
49
mlx_uint32
cls
:8;
/* bit_offset:32 */
/* element_size: 8 */
50
mlx_uint32
method
:7;
/* bit_offset:40 */
/* element_size: 7 */
51
mlx_uint32
r
:1;
/* bit_offset:47 */
/* element_size: 1 */
52
mlx_uint32
register_id
:16;
/* bit_offset:48 */
/* element_size: 16 */
53
mlx_uint64
tid
;
/* bit_offset:64 */
/* element_size: 64 */
54
};
55
56
struct
reg_tlv
{
57
mlx_uint32
reserved0
:16;
/* bit_offset:0 */
/* element_size: 16 */
58
mlx_uint32
len
:11;
/* bit_offset:16 */
/* element_size: 11 */
59
mlx_uint32
Type
:5;
/* bit_offset:27 */
/* element_size: 5 */
60
mlx_uint8
data
[
REG_ACCESS_MAX_REG_SIZE
];
61
};
62
63
struct
mail_box_tlv
{
64
struct
operation_tlv
operation_tlv
;
65
struct
reg_tlv
reg_tlv
;
66
};
67
mlx_status
68
mlx_reg_access
(
69
IN
mlx_utils
*utils,
70
IN
mlx_uint16
reg_id,
71
IN
REG_ACCESS_OPT
reg_opt,
72
IN
OUT
mlx_void
*reg_data,
73
IN
mlx_size
reg_size,
74
OUT
mlx_uint32
*reg_status
75
);
76
77
#endif
/* MLX_REG_ACCESS_H_ */
operation_tlv::dr
mlx_uint32 dr
Definition:
mlx_reg_access.h:46
operation_tlv::register_id
mlx_uint32 register_id
Definition:
mlx_reg_access.h:52
REG_ACCESS_MAX_REG_SIZE
#define REG_ACCESS_MAX_REG_SIZE
Definition:
mlx_reg_access.h:27
reg_tlv::reserved0
mlx_uint32 reserved0
Definition:
mlx_reg_access.h:57
operation_tlv::tid
mlx_uint64 tid
Definition:
mlx_reg_access.h:53
REG_ACCESS_OPT
REG_ACCESS_OPT
Definition:
mlx_reg_access.h:29
mail_box_tlv
Definition:
mlx_reg_access.h:63
mlx_uint32
uint32_t mlx_uint32
Definition:
mlx_types_priv.h:34
mlx_utils
Definition:
mlx_utils.h:44
reg_tlv
Definition:
mlx_reg_access.h:56
OUT
#define OUT
Definition:
mlx_utils.h:29
reg_tlv::len
mlx_uint32 len
Definition:
mlx_reg_access.h:58
operation_tlv::status
mlx_uint32 status
Definition:
mlx_reg_access.h:45
FILE_LICENCE
FILE_LICENCE(GPL2_OR_LATER)
operation_tlv::cls
mlx_uint32 cls
Definition:
mlx_reg_access.h:49
operation_tlv
Definition:
mlx_reg_access.h:43
operation_tlv::len
mlx_uint32 len
Definition:
mlx_reg_access.h:47
operation_tlv::method
mlx_uint32 method
Definition:
mlx_reg_access.h:50
mlx_size
size_t mlx_size
Definition:
mlx_types_priv.h:46
operation_tlv::reserved0
mlx_uint32 reserved0
Definition:
mlx_reg_access.h:44
reg_tlv::Type
mlx_uint32 Type
Definition:
mlx_reg_access.h:59
mlx_uint16
uint16_t mlx_uint16
Definition:
mlx_types_priv.h:33
operation_tlv::r
mlx_uint32 r
Definition:
mlx_reg_access.h:51
mlx_void
void mlx_void
Definition:
mlx_types_priv.h:48
IN
#define IN
Definition:
mlx_utils.h:28
reg_tlv::data
mlx_uint8 data[REG_ACCESS_MAX_REG_SIZE]
Definition:
mlx_reg_access.h:60
mlx_uint8
uint8_t mlx_uint8
Definition:
mlx_types_priv.h:32
REG_ACCESS_WRITE
Definition:
mlx_reg_access.h:31
operation_tlv::Type
mlx_uint32 Type
Definition:
mlx_reg_access.h:48
mlx_status
int mlx_status
Definition:
mlx_types_priv.h:30
mlx_uint64
uint64_t mlx_uint64
Definition:
mlx_types_priv.h:35
mlx_reg_access
mlx_status mlx_reg_access(IN mlx_utils *utils, IN mlx_uint16 reg_id, IN REG_ACCESS_OPT reg_opt, IN OUT mlx_void *reg_data, IN mlx_size reg_size, OUT mlx_uint32 *reg_status)
Definition:
mlx_reg_access.c:47
REG_ACCESS_READ
Definition:
mlx_reg_access.h:30
Generated by
1.8.15