OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [fc4/] [fcp.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* fcp.h: Definitions for Fibre Channel Protocol.
2
 *
3
 * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
4
 *
5
 */
6
 
7
#ifndef __FCP_H
8
#define __FCP_H
9
 
10
/* FCP addressing is hierarchical with up to 4 layers, MS first.
11
   Exact meaning of the addresses is up to the vendor */
12
 
13
/* fcp_cntl field */
14
#define FCP_CNTL_WRITE          0x00000001      /* Initiator write */
15
#define FCP_CNTL_READ           0x00000002      /* Initiator read */
16
#define FCP_CNTL_ABORT_TSK      0x00000200      /* Abort task set */
17
#define FCP_CNTL_CLR_TASK       0x00000400      /* Clear task set */
18
#define FCP_CNTL_RESET          0x00002000      /* Reset */
19
#define FCP_CNTL_CLR_ACA        0x00004000      /* Clear ACA */
20
#define FCP_CNTL_KILL_TASK      0x00008000      /* Terminate task */
21
#define FCP_CNTL_QTYPE_MASK     0x00070000      /* Tagged queueing type */
22
#define         FCP_CNTL_QTYPE_SIMPLE           0x00000000
23
#define         FCP_CNTL_QTYPE_HEAD_OF_Q        0x00010000
24
#define         FCP_CNTL_QTYPE_ORDERED          0x00020000
25
#define         FCP_CNTL_QTYPE_ACA_Q_TAG        0x00040000
26
#define         FCP_CNTL_QTYPE_UNTAGGED         0x00050000
27
 
28
typedef struct {
29
        u16     fcp_addr[4];
30
        u32     fcp_cntl;
31
        u8      fcp_cdb[16];
32
        u32     fcp_data_len;
33
} fcp_cmd;
34
 
35
/* fcp_status field */
36
#define FCP_STATUS_MASK         0x000000ff      /* scsi status of command */
37
#define FCP_STATUS_RSP_LEN      0x00000100      /* response_len != 0 */
38
#define FCP_STATUS_SENSE_LEN    0x00000200      /* sense_len != 0 */
39
#define FCP_STATUS_RESID        0x00000400      /* resid != 0 */
40
 
41
typedef struct {
42
        u32     xxx[2];
43
        u32     fcp_status;
44
        u32     fcp_resid;
45
        u32     fcp_sense_len;
46
        u32     fcp_response_len;
47
        /* u8   fcp_sense[fcp_sense_len]; */
48
        /* u8   fcp_response[fcp_response_len]; */
49
} fcp_rsp;
50
 
51
/* fcp errors */
52
 
53
/* rsp_info_type field */
54
#define FCP_RSP_SCSI_BUS_ERR    0x01
55
#define FCP_RSP_SCSI_PORT_ERR   0x02
56
#define FCP_RSP_CARD_ERR        0x03
57
 
58
/* isp_status field */
59
#define FCP_RSP_CMD_COMPLETE    0x0000
60
#define FCP_RSP_CMD_INCOMPLETE  0x0001
61
#define FCP_RSP_CMD_DMA_ERR     0x0002
62
#define FCP_RSP_CMD_TRAN_ERR    0x0003
63
#define FCP_RSP_CMD_RESET       0x0004
64
#define FCP_RSP_CMD_ABORTED     0x0005
65
#define FCP_RSP_CMD_TIMEOUT     0x0006
66
#define FCP_RSP_CMD_OVERRUN     0x0007
67
 
68
/* isp_state_flags field */
69
#define FCP_RSP_ST_GOT_BUS      0x0100
70
#define FCP_RSP_ST_GOT_TARGET   0x0200
71
#define FCP_RSP_ST_SENT_CMD     0x0400
72
#define FCP_RSP_ST_XFRD_DATA    0x0800
73
#define FCP_RSP_ST_GOT_STATUS   0x1000
74
#define FCP_RSP_ST_GOT_SENSE    0x2000
75
 
76
/* isp_stat_flags field */
77
#define FCP_RSP_STAT_DISC       0x0001
78
#define FCP_RSP_STAT_SYNC       0x0002
79
#define FCP_RSP_STAT_PERR       0x0004
80
#define FCP_RSP_STAT_BUS_RESET  0x0008
81
#define FCP_RSP_STAT_DEV_RESET  0x0010
82
#define FCP_RSP_STAT_ABORTED    0x0020
83
#define FCP_RSP_STAT_TIMEOUT    0x0040
84
#define FCP_RSP_STAT_NEGOTIATE  0x0080
85
 
86
typedef struct {
87
        u8      rsp_info_type;
88
        u8      xxx;
89
        u16     isp_status;
90
        u16     isp_state_flags;
91
        u16     isp_stat_flags;
92
} fcp_scsi_err;
93
 
94
#endif /* !(__FCP_H) */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.