Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / dev / pci / amrio.h @ 14

History | View | Annotate | Download (4.71 KB)

1
/* $NetBSD: amrio.h,v 1.1 2006/07/23 12:01:26 bouyer Exp $ */
2

    
3
/*-
4
 * Copyright (c) 1999 Michael Smith
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 * 1. Redistributions of source code must retain the above copyright
11
 *    notice, this list of conditions and the following disclaimer.
12
 * 2. Redistributions in binary form must reproduce the above copyright
13
 *    notice, this list of conditions and the following disclaimer in the
14
 *    documentation and/or other materials provided with the distribution.
15
 *
16
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26
 * SUCH DAMAGE.
27
 *
28
 * Copyright (c) 2002 Eric Moore
29
 * Copyright (c) 2002 LSI Logic Corporation
30
 * All rights reserved.
31
 *
32
 * Redistribution and use in source and binary forms, with or without
33
 * modification, are permitted provided that the following conditions
34
 * are met:
35
 * 1. Redistributions of source code must retain the above copyright
36
 *    notice, this list of conditions and the following disclaimer.
37
 * 2. Redistributions in binary form must reproduce the above copyright
38
 *    notice, this list of conditions and the following disclaimer in the
39
 *    documentation and/or other materials provided with the distribution.
40
 * 3. The party using or redistributing the source code and binary forms
41
 *    agrees to the disclaimer below and the terms and conditions set forth
42
 *    herein.
43
 *
44
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
45
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
46
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
47
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
48
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
49
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
50
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
51
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
52
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
53
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54
 * SUCH DAMAGE.
55
 *
56
 *
57
 *        FreeBSD: src/sys/dev/amr/amrio.h,v 1.7 2005/12/14 03:26:49 scottl Exp
58
 */
59

    
60
/*
61
 * ioctl interface
62
 */
63

    
64
#include <sys/ioccom.h>
65
#include <sys/param.h>
66

    
67
/*
68
 * Fetch the driver's interface version.
69
 */
70
#define AMR_IO_VERSION_NUMBER        153
71
#define AMR_IO_VERSION        _IOR('A', 0x200, int)
72

    
73
/*
74
 * Pass a command from userspace through to the adapter.
75
 *
76
 * Note that in order to be code-compatible with the Linux
77
 * interface where possible, the formatting of the au_cmd field is
78
 * somewhat Interesting.
79
 *
80
 * For normal commands, the layout is (fields from struct amr_mailbox_ioctl):
81
 *
82
 * 0                mb_command
83
 * 1                mb_channel
84
 * 2                mb_param
85
 * 3                mb_pad[0]
86
 * 4                mb_drive
87
 *
88
 * For SCSI passthrough commands, the layout is:
89
 *
90
 * 0                AMR_CMD_PASS        (0x3)
91
 * 1                reserved, 0
92
 * 2                cdb length
93
 * 3                cdb data
94
 * 3+cdb_len        passthrough control byte (timeout, ars, islogical)
95
 * 4+cdb_len        reserved, 0
96
 * 5+cdb_len        channel
97
 * 6+cdb_len        target
98
 */
99

    
100
struct amr_user_ioctl {
101
    unsigned char        au_cmd[32];        /* command text from userspace */
102
    void                *au_buffer;        /* data buffer in userspace */
103
    unsigned long        au_length;        /* data buffer size (0 == no data) */
104
    int                        au_direction;        /* data transfer direction */
105
#define AMR_IO_NODATA        0
106
#define AMR_IO_READ        1
107
#define AMR_IO_WRITE        2
108
    int                        au_status;        /* command status returned by adapter */
109
};
110

    
111
#define AMR_IO_COMMAND        _IOWR('A', 0x201, struct amr_user_ioctl)
112

    
113
#if 0 /* defined(__amd64__) || defined(__ia64__) */
114

115
struct amr_user_ioctl32 {
116
    unsigned char        au_cmd[32];        /* command text from userspace */
117
    u_int32_t                au_buffer;        /* 32-bit pointer to uspace buf */
118
    u_int32_t                au_length;        /* length of the uspace buffer */
119
    int32_t                au_direction;        /* data transfer direction */
120
    int32_t                au_status;        /* command status returned by adapter */
121
};
122

123
#        define AMR_IO_COMMAND32        _IOWR('A', 0x201, struct amr_user_ioctl32)
124
#endif