#ifndef _SBP_BASE_H
#define _SBP_BASE_H
#include <linux/firewire.h>
#include <linux/spinlock.h>
#include <linux/types.h>
#include <linux/workqueue.h>
#include <target/target_core_base.h>
#define SBP_VERSION …
#define SBP_NAMELEN …
#define SBP_ORB_FETCH_SIZE …
#define MANAGEMENT_AGENT_STATE_IDLE …
#define MANAGEMENT_AGENT_STATE_BUSY …
#define ORB_NOTIFY(v) …
#define ORB_REQUEST_FORMAT(v) …
#define MANAGEMENT_ORB_FUNCTION(v) …
#define MANAGEMENT_ORB_FUNCTION_LOGIN …
#define MANAGEMENT_ORB_FUNCTION_QUERY_LOGINS …
#define MANAGEMENT_ORB_FUNCTION_RECONNECT …
#define MANAGEMENT_ORB_FUNCTION_SET_PASSWORD …
#define MANAGEMENT_ORB_FUNCTION_LOGOUT …
#define MANAGEMENT_ORB_FUNCTION_ABORT_TASK …
#define MANAGEMENT_ORB_FUNCTION_ABORT_TASK_SET …
#define MANAGEMENT_ORB_FUNCTION_LOGICAL_UNIT_RESET …
#define MANAGEMENT_ORB_FUNCTION_TARGET_RESET …
#define LOGIN_ORB_EXCLUSIVE(v) …
#define LOGIN_ORB_RESERVED(v) …
#define LOGIN_ORB_RECONNECT(v) …
#define LOGIN_ORB_LUN(v) …
#define LOGIN_ORB_PASSWORD_LENGTH(v) …
#define LOGIN_ORB_RESPONSE_LENGTH(v) …
#define RECONNECT_ORB_LOGIN_ID(v) …
#define LOGOUT_ORB_LOGIN_ID(v) …
#define CMDBLK_ORB_DIRECTION(v) …
#define CMDBLK_ORB_SPEED(v) …
#define CMDBLK_ORB_MAX_PAYLOAD(v) …
#define CMDBLK_ORB_PG_TBL_PRESENT(v) …
#define CMDBLK_ORB_PG_SIZE(v) …
#define CMDBLK_ORB_DATA_SIZE(v) …
#define STATUS_BLOCK_SRC(v) …
#define STATUS_BLOCK_RESP(v) …
#define STATUS_BLOCK_DEAD(v) …
#define STATUS_BLOCK_LEN(v) …
#define STATUS_BLOCK_SBP_STATUS(v) …
#define STATUS_BLOCK_ORB_OFFSET_HIGH(v) …
#define STATUS_SRC_ORB_CONTINUING …
#define STATUS_SRC_ORB_FINISHED …
#define STATUS_SRC_UNSOLICITED …
#define STATUS_RESP_REQUEST_COMPLETE …
#define STATUS_RESP_TRANSPORT_FAILURE …
#define STATUS_RESP_ILLEGAL_REQUEST …
#define STATUS_RESP_VENDOR_DEPENDENT …
#define SBP_STATUS_OK …
#define SBP_STATUS_REQ_TYPE_NOTSUPP …
#define SBP_STATUS_SPEED_NOTSUPP …
#define SBP_STATUS_PAGE_SIZE_NOTSUPP …
#define SBP_STATUS_ACCESS_DENIED …
#define SBP_STATUS_LUN_NOTSUPP …
#define SBP_STATUS_PAYLOAD_TOO_SMALL …
#define SBP_STATUS_RESOURCES_UNAVAIL …
#define SBP_STATUS_FUNCTION_REJECTED …
#define SBP_STATUS_LOGIN_ID_UNKNOWN …
#define SBP_STATUS_DUMMY_ORB_COMPLETE …
#define SBP_STATUS_REQUEST_ABORTED …
#define SBP_STATUS_UNSPECIFIED_ERROR …
#define AGENT_STATE_RESET …
#define AGENT_STATE_ACTIVE …
#define AGENT_STATE_SUSPENDED …
#define AGENT_STATE_DEAD …
struct sbp2_pointer { … };
struct sbp_command_block_orb { … };
struct sbp_page_table_entry { … };
struct sbp_management_orb { … };
struct sbp_status_block { … };
struct sbp_login_response_block { … };
struct sbp_login_descriptor { … };
struct sbp_session { … };
struct sbp_tpg { … };
struct sbp_tport { … };
static inline u64 sbp2_pointer_to_addr(const struct sbp2_pointer *ptr)
{ … }
static inline void addr_to_sbp2_pointer(u64 addr, struct sbp2_pointer *ptr)
{ … }
struct sbp_target_agent { … };
struct sbp_target_request { … };
struct sbp_management_agent { … };
struct sbp_management_request { … };
#endif