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
scsi
libsrp.h
Go to the documentation of this file.
1
#ifndef __LIBSRP_H__
2
#define __LIBSRP_H__
3
4
#include <linux/list.h>
5
#include <
linux/kfifo.h
>
6
#include <
scsi/scsi_cmnd.h
>
7
#include <
scsi/scsi_host.h
>
8
#include <
scsi/srp.h
>
9
10
enum
iue_flags
{
11
V_DIOVER
,
12
V_WRITE
,
13
V_LINKED
,
14
V_FLYING
,
15
};
16
17
struct
srp_buf
{
18
dma_addr_t
dma
;
19
void
*
buf
;
20
};
21
22
struct
srp_queue
{
23
void
*
pool
;
24
void
*
items
;
25
struct
kfifo
queue
;
26
spinlock_t
lock
;
27
};
28
29
struct
srp_target
{
30
struct
Scsi_Host
*
shost
;
31
struct
device
*
dev
;
32
33
spinlock_t
lock
;
34
struct
list_head
cmd_queue
;
35
36
size_t
srp_iu_size
;
37
struct
srp_queue
iu_queue
;
38
size_t
rx_ring_size
;
39
struct
srp_buf
**
rx_ring
;
40
41
void
*
ldata
;
42
};
43
44
struct
iu_entry
{
45
struct
srp_target
*
target
;
46
47
struct
list_head
ilist
;
48
dma_addr_t
remote_token
;
49
unsigned
long
flags
;
50
51
struct
srp_buf
*
sbuf
;
52
};
53
54
typedef
int
(
srp_rdma_t
)(
struct
scsi_cmnd
*,
struct
scatterlist
*,
int
,
55
struct
srp_direct_buf
*,
int
,
56
enum
dma_data_direction
,
unsigned
int
);
57
extern
int
srp_target_alloc
(
struct
srp_target
*,
struct
device
*,
size_t
,
size_t
);
58
extern
void
srp_target_free
(
struct
srp_target
*);
59
60
extern
struct
iu_entry
*
srp_iu_get
(
struct
srp_target
*);
61
extern
void
srp_iu_put
(
struct
iu_entry
*);
62
63
extern
int
srp_cmd_queue
(
struct
Scsi_Host
*,
struct
srp_cmd
*,
void
*,
u64
,
u64
);
64
extern
int
srp_transfer_data
(
struct
scsi_cmnd
*,
struct
srp_cmd
*,
65
srp_rdma_t
,
int
,
int
);
66
67
68
static
inline
struct
srp_target
*host_to_srp_target(
struct
Scsi_Host
*
host
)
69
{
70
return
(
struct
srp_target
*) host->hostdata;
71
}
72
73
static
inline
int
srp_cmd_direction(
struct
srp_cmd
*
cmd
)
74
{
75
return
(cmd->
buf_fmt
>> 4) ?
DMA_TO_DEVICE
:
DMA_FROM_DEVICE
;
76
}
77
78
#endif
Generated on Thu Jan 10 2013 14:53:26 for Linux Kernel by
1.8.2