Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
iscsi_boot_sysfs.h
Go to the documentation of this file.
1
/*
2
* Export the iSCSI boot info to userland via sysfs.
3
*
4
* Copyright (C) 2010 Red Hat, Inc. All rights reserved.
5
* Copyright (C) 2010 Mike Christie
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License v2.0 as published by
9
* the Free Software Foundation
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*/
16
#ifndef _ISCSI_BOOT_SYSFS_
17
#define _ISCSI_BOOT_SYSFS_
18
19
/*
20
* The text attributes names for each of the kobjects.
21
*/
22
enum
iscsi_boot_eth_properties_enum
{
23
ISCSI_BOOT_ETH_INDEX
,
24
ISCSI_BOOT_ETH_FLAGS
,
25
ISCSI_BOOT_ETH_IP_ADDR
,
26
ISCSI_BOOT_ETH_SUBNET_MASK
,
27
ISCSI_BOOT_ETH_ORIGIN
,
28
ISCSI_BOOT_ETH_GATEWAY
,
29
ISCSI_BOOT_ETH_PRIMARY_DNS
,
30
ISCSI_BOOT_ETH_SECONDARY_DNS
,
31
ISCSI_BOOT_ETH_DHCP
,
32
ISCSI_BOOT_ETH_VLAN
,
33
ISCSI_BOOT_ETH_MAC
,
34
/* eth_pci_bdf - this is replaced by link to the device itself. */
35
ISCSI_BOOT_ETH_HOSTNAME
,
36
ISCSI_BOOT_ETH_END_MARKER
,
37
};
38
39
enum
iscsi_boot_tgt_properties_enum
{
40
ISCSI_BOOT_TGT_INDEX
,
41
ISCSI_BOOT_TGT_FLAGS
,
42
ISCSI_BOOT_TGT_IP_ADDR
,
43
ISCSI_BOOT_TGT_PORT
,
44
ISCSI_BOOT_TGT_LUN
,
45
ISCSI_BOOT_TGT_CHAP_TYPE
,
46
ISCSI_BOOT_TGT_NIC_ASSOC
,
47
ISCSI_BOOT_TGT_NAME
,
48
ISCSI_BOOT_TGT_CHAP_NAME
,
49
ISCSI_BOOT_TGT_CHAP_SECRET
,
50
ISCSI_BOOT_TGT_REV_CHAP_NAME
,
51
ISCSI_BOOT_TGT_REV_CHAP_SECRET
,
52
ISCSI_BOOT_TGT_END_MARKER
,
53
};
54
55
enum
iscsi_boot_initiator_properties_enum
{
56
ISCSI_BOOT_INI_INDEX
,
57
ISCSI_BOOT_INI_FLAGS
,
58
ISCSI_BOOT_INI_ISNS_SERVER
,
59
ISCSI_BOOT_INI_SLP_SERVER
,
60
ISCSI_BOOT_INI_PRI_RADIUS_SERVER
,
61
ISCSI_BOOT_INI_SEC_RADIUS_SERVER
,
62
ISCSI_BOOT_INI_INITIATOR_NAME
,
63
ISCSI_BOOT_INI_END_MARKER
,
64
};
65
66
struct
attribute_group
;
67
68
struct
iscsi_boot_kobj
{
69
struct
kobject
kobj
;
70
struct
attribute_group
*
attr_group
;
71
struct
list_head
list
;
72
73
/*
74
* Pointer to store driver specific info. If set this will
75
* be freed for the LLD when the kobj release function is called.
76
*/
77
void
*
data
;
78
/*
79
* Driver specific show function.
80
*
81
* The enum of the type. This can be any value of the above
82
* properties.
83
*/
84
ssize_t
(*
show
) (
void
*
data
,
int
type
,
char
*
buf
);
85
86
/*
87
* Drivers specific visibility function.
88
* The function should return if they the attr should be readable
89
* writable or should not be shown.
90
*
91
* The enum of the type. This can be any value of the above
92
* properties.
93
*/
94
umode_t
(*
is_visible
) (
void
*
data
,
int
type
);
95
96
/*
97
* Driver specific release function.
98
*
99
* The function should free the data passed in.
100
*/
101
void
(*
release
) (
void
*
data
);
102
};
103
104
struct
iscsi_boot_kset
{
105
struct
list_head
kobj_list
;
106
struct
kset
*
kset
;
107
};
108
109
struct
iscsi_boot_kobj
*
110
iscsi_boot_create_initiator
(
struct
iscsi_boot_kset
*boot_kset,
int
index
,
111
void
*
data
,
112
ssize_t
(*
show
) (
void
*data,
int
type
,
char
*
buf
),
113
umode_t
(*
is_visible
) (
void
*data,
int
type),
114
void
(*
release
) (
void
*data));
115
116
struct
iscsi_boot_kobj
*
117
iscsi_boot_create_ethernet
(
struct
iscsi_boot_kset
*boot_kset,
int
index,
118
void
*data,
119
ssize_t
(*
show
) (
void
*data,
int
type,
char
*buf),
120
umode_t
(*
is_visible
) (
void
*data,
int
type),
121
void
(*
release
) (
void
*data));
122
struct
iscsi_boot_kobj
*
123
iscsi_boot_create_target
(
struct
iscsi_boot_kset
*boot_kset,
int
index,
124
void
*data,
125
ssize_t
(*
show
) (
void
*data,
int
type,
char
*buf),
126
umode_t
(*
is_visible
) (
void
*data,
int
type),
127
void
(*
release
) (
void
*data));
128
129
struct
iscsi_boot_kset
*
iscsi_boot_create_kset
(
const
char
*set_name);
130
struct
iscsi_boot_kset
*
iscsi_boot_create_host_kset
(
unsigned
int
hostno);
131
void
iscsi_boot_destroy_kset
(
struct
iscsi_boot_kset
*boot_kset);
132
133
#endif
Generated on Thu Jan 10 2013 14:51:41 for Linux Kernel by
1.8.2