Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Variables
scu_task_context.h File Reference

Go to the source code of this file.

Data Structures

struct  ssp_task_context
 
struct  stp_task_context
 
struct  smp_task_context
 
struct  primitive_task_context
 
union  protocol_context
 
struct  scu_sgl_element
 
struct  scu_sgl_element_pair
 
struct  transport_snapshot
 
struct  scu_task_context
 

Macros

#define SCU_TASK_CONTEXT_TYPE   0
 
#define SCU_RNC_CONTEXT_TYPE   1
 
#define SCU_TASK_CONTEXT_INVALID   0
 
#define SCU_TASK_CONTEXT_VALID   1
 
#define SCU_COMMAND_CODE_INITIATOR_NEW_TASK   0
 
#define SCU_COMMAND_CODE_ACTIVE_TASK   1
 
#define SCU_COMMAND_CODE_PRIMITIVE_SEQ_TASK   2
 
#define SCU_COMMAND_CODE_TARGET_RAW_FRAMES   3
 
#define SCU_TASK_PRIORITY_NORMAL   0
 
#define SCU_TASK_PRIORITY_HEAD_OF_Q   1
 
#define SCU_TASK_PRIORITY_HIGH   2
 
#define SCU_TASK_PRIORITY_RESERVED   3
 
#define SCU_TASK_INITIATOR_MODE   1
 
#define SCU_TASK_TARGET_MODE   0
 
#define SCU_TASK_REGULAR   0
 
#define SCU_TASK_ABORTED   1
 
#define SCU_SATA_WRITE_DATA_DIRECTION   0
 
#define SCU_SATA_READ_DATA_DIRECTION   1
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_SHIFT   21
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_MASK   0x00E00000
 
#define scu_get_command_request_type(x)   ((x) & SCU_CONTEXT_COMMAND_REQUEST_TYPE_MASK)
 
#define SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_SHIFT   18
 
#define SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_MASK   0x001C0000
 
#define scu_get_command_request_subtype(x)   ((x) & SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_MASK)
 
#define SCU_CONTEXT_COMMAND_REQUEST_FULLTYPE_MASK
 
#define scu_get_command_request_full_type(x)   ((x) & SCU_CONTEXT_COMMAND_REQUEST_FULLTYPE_MASK)
 
#define SCU_CONTEXT_COMMAND_PROTOCOL_ENGINE_GROUP_SHIFT   16
 
#define SCU_CONTEXT_COMMAND_PROTOCOL_ENGINE_GROUP_MASK   0x00010000
 
#define scu_get_command_protocl_engine_group(x)   ((x) & SCU_CONTEXT_COMMAND_PROTOCOL_ENGINE_GROUP_MASK)
 
#define SCU_CONTEXT_COMMAND_LOGICAL_PORT_SHIFT   12
 
#define SCU_CONTEXT_COMMAND_LOGICAL_PORT_MASK   0x00007000
 
#define scu_get_command_reqeust_logical_port(x)   ((x) & SCU_CONTEXT_COMMAND_LOGICAL_PORT_MASK)
 
#define MAKE_SCU_CONTEXT_COMMAND_TYPE(type)   ((u32)(type) << SCU_CONTEXT_COMMAND_REQUEST_TYPE_SHIFT)
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_TC   MAKE_SCU_CONTEXT_COMMAND_TYPE(0)
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_TC   MAKE_SCU_CONTEXT_COMMAND_TYPE(1)
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC   MAKE_SCU_CONTEXT_COMMAND_TYPE(2)
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_RNC   MAKE_SCU_CONTEXT_COMMAND_TYPE(3)
 
#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC   MAKE_SCU_CONTEXT_COMMAND_TYPE(6)
 
#define MAKE_SCU_CONTEXT_COMMAND_REQUEST(type, command)   ((type) | ((command) << SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_SHIFT))
 
#define SCU_CONTEXT_COMMAND_REQUST_POST_TC   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_TC, 0))
 
#define SCU_CONTEXT_COMMAND_REQUEST_POST_TC_ABORT   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_TC, 1))
 
#define SCU_CONTEXT_COMMAND_REQUST_DUMP_TC   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_TC, 0))
 
#define SCU_CONTEXT_COMMAND_POST_RNC_32   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC, 0))
 
#define SCU_CONTEXT_COMMAND_POST_RNC_96   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC, 1))
 
#define SCU_CONTEXT_COMMAND_POST_RNC_INVALIDATE   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC, 2))
 
#define SCU_CONTEXT_COMMAND_DUMP_RNC_32   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_RNC, 0))
 
#define SCU_CONTEXT_COMMAND_DUMP_RNC_96   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_RNC, 1))
 
#define SCU_CONTEXT_COMMAND_POST_RNC_SUSPEND_TX   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 0))
 
#define SCU_CONTEXT_COMMAND_POST_RNC_SUSPEND_TX_RX   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 1))
 
#define SCU_CONTEXT_COMMAND_POST_RNC_RESUME   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 2))
 
#define SCU_CONTEXT_IT_NEXUS_LOSS_TIMER_ENABLE   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 3))
 
#define SCU_CONTEXT_IT_NEXUS_LOSS_TIMER_DISABLE   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 4))
 
#define SCU_TASK_CONTEXT_PROTOCOL_SMP   0x00
 
#define SCU_TASK_CONTEXT_PROTOCOL_SSP   0x01
 
#define SCU_TASK_CONTEXT_PROTOCOL_STP   0x02
 
#define SCU_TASK_CONTEXT_PROTOCOL_NONE   0x07
 
#define SCU_SGL_ELEMENT_PAIR_A   0
 
#define SCU_SGL_ELEMENT_PAIR_B   1
 

Enumerations

enum  scu_ssp_task_type {
  SCU_TASK_TYPE_IOREAD, SCU_TASK_TYPE_IOWRITE, SCU_TASK_TYPE_SMP_REQUEST, SCU_TASK_TYPE_RESPONSE,
  SCU_TASK_TYPE_RAW_FRAME, SCU_TASK_TYPE_PRIMITIVE
}
 
enum  scu_sata_task_type {
  SCU_TASK_TYPE_DMA_IN, SCU_TASK_TYPE_FPDMAQ_READ, SCU_TASK_TYPE_PACKET_DMA_IN, SCU_TASK_TYPE_SATA_RAW_FRAME,
  RESERVED_4, RESERVED_5, RESERVED_6, RESERVED_7,
  SCU_TASK_TYPE_DMA_OUT, SCU_TASK_TYPE_FPDMAQ_WRITE, SCU_TASK_TYPE_PACKET_DMA_OUT
}
 

Variables

struct scu_task_context __packed
 

Macro Definition Documentation

#define MAKE_SCU_CONTEXT_COMMAND_REQUEST (   type,
  command 
)    ((type) | ((command) << SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_SHIFT))

Definition at line 233 of file scu_task_context.h.

#define MAKE_SCU_CONTEXT_COMMAND_TYPE (   type)    ((u32)(type) << SCU_CONTEXT_COMMAND_REQUEST_TYPE_SHIFT)

Definition at line 218 of file scu_task_context.h.

#define SCU_COMMAND_CODE_ACTIVE_TASK   1

Definition at line 127 of file scu_task_context.h.

#define SCU_COMMAND_CODE_INITIATOR_NEW_TASK   0

SCU_COMMAND_CODE

Definition at line 126 of file scu_task_context.h.

#define SCU_COMMAND_CODE_PRIMITIVE_SEQ_TASK   2

Definition at line 128 of file scu_task_context.h.

#define SCU_COMMAND_CODE_TARGET_RAW_FRAMES   3

Definition at line 129 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_DUMP_RNC_32   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_RNC, 0))

Definition at line 260 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_DUMP_RNC_96   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_RNC, 1))

Definition at line 263 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_LOGICAL_PORT_MASK   0x00007000

Definition at line 213 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_LOGICAL_PORT_SHIFT   12

Definition at line 212 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_POST_RNC_32   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC, 0))

Definition at line 251 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_POST_RNC_96   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC, 1))

Definition at line 254 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_POST_RNC_INVALIDATE   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC, 2))

Definition at line 257 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_POST_RNC_RESUME   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 2))

Definition at line 272 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_POST_RNC_SUSPEND_TX   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 0))

Definition at line 266 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_POST_RNC_SUSPEND_TX_RX   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 1))

Definition at line 269 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_PROTOCOL_ENGINE_GROUP_MASK   0x00010000

Definition at line 208 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_PROTOCOL_ENGINE_GROUP_SHIFT   16

Definition at line 207 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_FULLTYPE_MASK
Value:
(\
SCU_CONTEXT_COMMAND_REQUEST_TYPE_MASK \
)

Definition at line 199 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_POST_TC_ABORT   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_TC, 1))

Definition at line 245 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_MASK   0x001C0000

Definition at line 195 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_SHIFT   18

Definition at line 194 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_RNC   MAKE_SCU_CONTEXT_COMMAND_TYPE(3)

Definition at line 230 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_TC   MAKE_SCU_CONTEXT_COMMAND_TYPE(1)

Definition at line 228 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_MASK   0x00E00000

Definition at line 190 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC   MAKE_SCU_CONTEXT_COMMAND_TYPE(6)

Definition at line 231 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_RNC   MAKE_SCU_CONTEXT_COMMAND_TYPE(2)

Definition at line 229 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_TC   MAKE_SCU_CONTEXT_COMMAND_TYPE(0)

MAKE_SCU_CONTEXT_COMMAND_TYPE() -

SCU_COMMAND_TYPES These constants provide the grouping of the different SCU command types.

Definition at line 227 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUEST_TYPE_SHIFT   21

SCU_COMMAND_CONTEXT_MACROS These macros provide the mask and shift operations to construct the various SCU commands

Definition at line 189 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUST_DUMP_TC   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_DUMP_TC, 0))

Definition at line 248 of file scu_task_context.h.

#define SCU_CONTEXT_COMMAND_REQUST_POST_TC   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_POST_TC, 0))

SCU_REQUEST_TYPES These constants are the various request types that can be posted to the SCU hardware.

Definition at line 242 of file scu_task_context.h.

#define SCU_CONTEXT_IT_NEXUS_LOSS_TIMER_DISABLE   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 4))

Definition at line 278 of file scu_task_context.h.

#define SCU_CONTEXT_IT_NEXUS_LOSS_TIMER_ENABLE   (MAKE_SCU_CONTEXT_COMMAND_REQUEST(SCU_CONTEXT_COMMAND_REQUEST_TYPE_OTHER_RNC, 3))

Definition at line 275 of file scu_task_context.h.

#define scu_get_command_protocl_engine_group (   x)    ((x) & SCU_CONTEXT_COMMAND_PROTOCOL_ENGINE_GROUP_MASK)

Definition at line 209 of file scu_task_context.h.

#define scu_get_command_reqeust_logical_port (   x)    ((x) & SCU_CONTEXT_COMMAND_LOGICAL_PORT_MASK)

Definition at line 214 of file scu_task_context.h.

#define scu_get_command_request_full_type (   x)    ((x) & SCU_CONTEXT_COMMAND_REQUEST_FULLTYPE_MASK)

Definition at line 204 of file scu_task_context.h.

#define scu_get_command_request_subtype (   x)    ((x) & SCU_CONTEXT_COMMAND_REQUEST_SUBTYPE_MASK)

Definition at line 196 of file scu_task_context.h.

#define scu_get_command_request_type (   x)    ((x) & SCU_CONTEXT_COMMAND_REQUEST_TYPE_MASK)

Definition at line 191 of file scu_task_context.h.

#define SCU_RNC_CONTEXT_TYPE   1

Definition at line 111 of file scu_task_context.h.

#define SCU_SATA_READ_DATA_DIRECTION   1

Definition at line 181 of file scu_task_context.h.

#define SCU_SATA_WRITE_DATA_DIRECTION   0

SATA_DIRECTION

Definition at line 180 of file scu_task_context.h.

#define SCU_SGL_ELEMENT_PAIR_A   0

Definition at line 465 of file scu_task_context.h.

#define SCU_SGL_ELEMENT_PAIR_B   1

Definition at line 466 of file scu_task_context.h.

#define SCU_TASK_ABORTED   1

Definition at line 172 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_INVALID   0

SCU_TASK_CONTEXT_VALIDITY

Definition at line 118 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_PROTOCOL_NONE   0x07

Definition at line 290 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_PROTOCOL_SMP   0x00

SCU_TASK_CONTEXT_PROTOCOL SCU Task context protocol types this is uesd to program the SCU Task context protocol field in word 0x00.

Definition at line 287 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_PROTOCOL_SSP   0x01

Definition at line 288 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_PROTOCOL_STP   0x02

Definition at line 289 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_TYPE   0

SCU_CONTEXT_TYPE

Definition at line 110 of file scu_task_context.h.

#define SCU_TASK_CONTEXT_VALID   1

Definition at line 119 of file scu_task_context.h.

#define SCU_TASK_INITIATOR_MODE   1

Definition at line 168 of file scu_task_context.h.

#define SCU_TASK_PRIORITY_HEAD_OF_Q   1

This priority indicates that the task should be scheduled to the head of the queue. The task will NOT be executed if the TX is suspended for the remote node.

Definition at line 150 of file scu_task_context.h.

#define SCU_TASK_PRIORITY_HIGH   2

This priority indicates that the task will be executed before all SCU_TASK_PRIORITY_NORMAL and SCU_TASK_PRIORITY_HEAD_OF_Q tasks. The task WILL be executed if the TX is suspended for the remote node.

Definition at line 159 of file scu_task_context.h.

#define SCU_TASK_PRIORITY_NORMAL   0

SCU_TASK_PRIORITY

This priority is used when there is no priority request for this request.

Definition at line 141 of file scu_task_context.h.

#define SCU_TASK_PRIORITY_RESERVED   3

This task priority is reserved and should not be used.

Definition at line 166 of file scu_task_context.h.

#define SCU_TASK_REGULAR   0

Definition at line 171 of file scu_task_context.h.

#define SCU_TASK_TARGET_MODE   0

Definition at line 169 of file scu_task_context.h.

Enumeration Type Documentation

enum scu_sata_task_type - This enumeration defines the various SATA task types the SCU hardware will accept. The definition for the various task types the SCU hardware will accept can be found in the DS specification.

Enumerator:
SCU_TASK_TYPE_DMA_IN 
SCU_TASK_TYPE_FPDMAQ_READ 
SCU_TASK_TYPE_PACKET_DMA_IN 
SCU_TASK_TYPE_SATA_RAW_FRAME 
RESERVED_4 
RESERVED_5 
RESERVED_6 
RESERVED_7 
SCU_TASK_TYPE_DMA_OUT 
SCU_TASK_TYPE_FPDMAQ_WRITE 
SCU_TASK_TYPE_PACKET_DMA_OUT 

Definition at line 90 of file scu_task_context.h.

This file contains the structures and constants for the SCU hardware task context. enum scu_ssp_task_type - This enumberation defines the various SSP task types the SCU hardware will accept. The definition for the various task types the SCU hardware will accept can be found in the DS specification.

Enumerator:
SCU_TASK_TYPE_IOREAD 
SCU_TASK_TYPE_IOWRITE 
SCU_TASK_TYPE_SMP_REQUEST 
SCU_TASK_TYPE_RESPONSE 
SCU_TASK_TYPE_RAW_FRAME 
SCU_TASK_TYPE_PRIMITIVE 

Definition at line 74 of file scu_task_context.h.

Variable Documentation