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
bsg-lib.h
Go to the documentation of this file.
1
/*
2
* BSG helper library
3
*
4
* Copyright (C) 2008 James Smart, Emulex Corporation
5
* Copyright (C) 2011 Red Hat, Inc. All rights reserved.
6
* Copyright (C) 2011 Mike Christie
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; either version 2 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with this program; if not, write to the Free Software
20
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
*
22
*/
23
#ifndef _BLK_BSG_
24
#define _BLK_BSG_
25
26
#include <
linux/blkdev.h
>
27
28
struct
request
;
29
struct
device
;
30
struct
scatterlist
;
31
struct
request_queue
;
32
33
struct
bsg_buffer
{
34
unsigned
int
payload_len
;
35
int
sg_cnt
;
36
struct
scatterlist
*
sg_list
;
37
};
38
39
struct
bsg_job
{
40
struct
device
*
dev
;
41
struct
request
*
req
;
42
43
/* Transport/driver specific request/reply structs */
44
void
*
request
;
45
void
*
reply
;
46
47
unsigned
int
request_len
;
48
unsigned
int
reply_len
;
49
/*
50
* On entry : reply_len indicates the buffer size allocated for
51
* the reply.
52
*
53
* Upon completion : the message handler must set reply_len
54
* to indicates the size of the reply to be returned to the
55
* caller.
56
*/
57
58
/* DMA payloads for the request/response */
59
struct
bsg_buffer
request_payload
;
60
struct
bsg_buffer
reply_payload
;
61
62
void
*
dd_data
;
/* Used for driver-specific storage */
63
};
64
65
void
bsg_job_done
(
struct
bsg_job
*job,
int
result
,
66
unsigned
int
reply_payload_rcv_len);
67
int
bsg_setup_queue
(
struct
device
*
dev
,
struct
request_queue
*
q
,
char
*
name
,
68
bsg_job_fn *job_fn,
int
dd_job_size);
69
void
bsg_request_fn
(
struct
request_queue
*
q
);
70
void
bsg_goose_queue
(
struct
request_queue
*
q
);
71
72
#endif
Generated on Thu Jan 10 2013 14:51:06 for Linux Kernel by
1.8.2