#ifndef TARGET_CORE_BASE_H
#define TARGET_CORE_BASE_H
#include <linux/configfs.h>
#include <linux/dma-direction.h>
#include <linux/sbitmap.h>
#include <linux/percpu-refcount.h>
#include <linux/semaphore.h>
#include <linux/completion.h>
#define TARGET_CORE_VERSION …
#define TCM_MAX_COMMAND_SIZE …
#define TRANSPORT_SENSE_BUFFER …
#define SPC_SENSE_KEY_OFFSET …
#define SPC_ADD_SENSE_LEN_OFFSET …
#define SPC_DESC_TYPE_OFFSET …
#define SPC_ADDITIONAL_DESC_LEN_OFFSET …
#define SPC_VALIDITY_OFFSET …
#define SPC_ASC_KEY_OFFSET …
#define SPC_ASCQ_KEY_OFFSET …
#define TRANSPORT_IQN_LEN …
#define LU_GROUP_NAME_BUF …
#define TG_PT_GROUP_NAME_BUF …
#define VPD_TMP_BUF_SIZE …
#define READ_BLOCK_LEN …
#define READ_CAP_LEN …
#define READ_POSITION_LEN …
#define INQUIRY_LEN …
#define INQUIRY_VPD_SERIAL_LEN …
#define INQUIRY_VPD_DEVICE_IDENTIFIER_LEN …
#define INQUIRY_VENDOR_LEN …
#define INQUIRY_MODEL_LEN …
#define INQUIRY_REVISION_LEN …
#define PYX_TRANSPORT_WINDOW_CLOSED_THRESHOLD …
#define PYX_TRANSPORT_WINDOW_CLOSED_WAIT_SHORT …
#define PYX_TRANSPORT_WINDOW_CLOSED_WAIT_LONG …
#define PYX_TRANSPORT_STATUS_INTERVAL …
#define DA_MAX_UNMAP_LBA_COUNT …
#define DA_MAX_UNMAP_BLOCK_DESC_COUNT …
#define DA_UNMAP_GRANULARITY_DEFAULT …
#define DA_UNMAP_GRANULARITY_ALIGNMENT_DEFAULT …
#define DA_UNMAP_ZEROES_DATA_DEFAULT …
#define DA_MAX_WRITE_SAME_LEN …
#define DA_EMULATE_MODEL_ALIAS …
#define DA_EMULATE_WRITE_CACHE …
#define DA_EMULATE_TAS …
#define DA_EMULATE_TPU …
#define DA_EMULATE_TPWS …
#define DA_EMULATE_CAW …
#define DA_EMULATE_3PC …
#define DA_EMULATE_ALUA …
#define DA_EMULATE_PR …
#define DA_EMULATE_RSOC …
#define DA_ENFORCE_PR_ISIDS …
#define DA_FORCE_PR_APTPL …
#define DA_STATUS_MAX_SECTORS_MIN …
#define DA_STATUS_MAX_SECTORS_MAX …
#define DA_IS_NONROT …
#define DA_EMULATE_REST_REORD …
#define SE_INQUIRY_BUF …
#define SE_MODE_PAGE_BUF …
#define SE_SENSE_BUF …
enum target_submit_type { … };
enum hba_flags_table { … };
enum transport_state_table { … };
enum se_cmd_flags_table { … };
sense_reason_t;
enum tcm_sense_reason_table { … };
enum target_sc_flags_table { … };
enum tcm_tmreq_table { … };
enum tcm_tmrsp_table { … };
scsi_index_t;
struct se_cmd;
struct t10_alua_lba_map_member { … };
struct t10_alua_lba_map { … };
struct t10_alua { … };
struct t10_alua_lu_gp { … };
struct t10_alua_lu_gp_member { … };
struct t10_alua_tg_pt_gp { … };
struct t10_vpd { … };
struct t10_wwn { … };
struct t10_pr_registration { … };
struct t10_reservation { … };
struct se_tmr_req { … };
enum target_prot_op { … };
#define TARGET_PROT_ALL …
enum target_prot_type { … };
enum target_ua_intlck_ctrl { … };
enum target_core_dif_check { … };
#define TCM_SIMPLE_TAG …
#define TCM_HEAD_TAG …
#define TCM_ORDERED_TAG …
#define TCM_ACA_TAG …
struct se_cmd { … };
struct se_ua { … };
struct se_node_acl { … };
static inline struct se_node_acl *acl_to_nacl(struct config_item *item)
{ … }
static inline struct se_node_acl *attrib_to_nacl(struct config_item *item)
{ … }
static inline struct se_node_acl *auth_to_nacl(struct config_item *item)
{ … }
static inline struct se_node_acl *param_to_nacl(struct config_item *item)
{ … }
static inline struct se_node_acl *fabric_stat_to_nacl(struct config_item *item)
{ … }
struct target_cmd_counter { … };
struct se_session { … };
struct se_device;
struct se_transform_info;
struct scatterlist;
struct se_ml_stat_grps { … };
struct se_lun_acl { … };
struct se_dev_entry { … };
struct se_dev_attrib { … };
struct se_port_stat_grps { … };
struct scsi_port_stats { … };
struct se_lun { … };
struct se_dev_stat_grps { … };
struct se_cmd_queue { … };
struct se_dev_plug { … };
struct se_device_queue { … };
struct se_device { … };
struct target_opcode_descriptor { … };
struct se_hba { … };
struct se_tpg_np { … };
static inline struct se_tpg_np *to_tpg_np(struct config_item *item)
{ … }
struct se_portal_group { … };
static inline struct se_portal_group *to_tpg(struct config_item *item)
{ … }
static inline struct se_portal_group *attrib_to_tpg(struct config_item *item)
{ … }
static inline struct se_portal_group *auth_to_tpg(struct config_item *item)
{ … }
static inline struct se_portal_group *param_to_tpg(struct config_item *item)
{ … }
enum { … };
struct se_wwn { … };
static inline void atomic_inc_mb(atomic_t *v)
{ … }
static inline void atomic_dec_mb(atomic_t *v)
{ … }
static inline void target_free_tag(struct se_session *sess, struct se_cmd *cmd)
{ … }
#endif