]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - include/target/target_core_transport.h
Merge branch 'next/cross-platform' of git://git.linaro.org/people/arnd/arm-soc
[mv-sheeva.git] / include / target / target_core_transport.h
index c91516910e3ec53530fb2fac1d3fd7c32869e404..a037a1a6fbbac5d0d2219c8cc7a53edf023ba653 100644 (file)
 #define PYX_TRANSPORT_LU_COMM_FAILURE          -7
 #define PYX_TRANSPORT_UNKNOWN_MODE_PAGE                -8
 #define PYX_TRANSPORT_WRITE_PROTECTED          -9
-#define PYX_TRANSPORT_TASK_TIMEOUT             -10
-#define PYX_TRANSPORT_RESERVATION_CONFLICT     -11
-#define PYX_TRANSPORT_ILLEGAL_REQUEST          -12
-#define PYX_TRANSPORT_USE_SENSE_REASON         -13
+#define PYX_TRANSPORT_RESERVATION_CONFLICT     -10
+#define PYX_TRANSPORT_ILLEGAL_REQUEST          -11
+#define PYX_TRANSPORT_USE_SENSE_REASON         -12
 
 #ifndef SAM_STAT_RESERVATION_CONFLICT
 #define SAM_STAT_RESERVATION_CONFLICT          0x18
 #define TRANSPORT_PLUGIN_VHBA_PDEV             2
 #define TRANSPORT_PLUGIN_VHBA_VDEV             3
 
-/* For SE OBJ Plugins, in seconds */
-#define TRANSPORT_TIMEOUT_TUR                  10
-#define TRANSPORT_TIMEOUT_TYPE_DISK            60
-#define TRANSPORT_TIMEOUT_TYPE_ROM             120
-#define TRANSPORT_TIMEOUT_TYPE_TAPE            600
-#define TRANSPORT_TIMEOUT_TYPE_OTHER           300
-
-/* For se_task->task_state_flags */
-#define TSF_EXCEPTION_CLEARED                  0x01
-
 /*
  * struct se_subsystem_dev->su_dev_flags
 */
@@ -64,8 +53,6 @@
 #define DF_SPC2_RESERVATIONS_WITH_ISID         0x00000004
 
 /* struct se_dev_attrib sanity values */
-/* 10 Minutes */
-#define DA_TASK_TIMEOUT_MAX                    600
 /* Default max_unmap_lba_count */
 #define DA_MAX_UNMAP_LBA_COUNT                 0
 /* Default max_unmap_block_desc_count */
 
 #define MOD_MAX_SECTORS(ms, bs)                        (ms % (PAGE_SIZE / bs))
 
-struct se_mem;
 struct se_subsystem_api;
 
-extern struct kmem_cache *se_mem_cache;
-
 extern int init_se_kmem_caches(void);
 extern void release_se_kmem_caches(void);
 extern u32 scsi_get_new_index(scsi_index_t);
 extern void transport_init_queue_obj(struct se_queue_obj *);
-extern int transport_subsystem_check_init(void);
+extern void transport_subsystem_check_init(void);
 extern int transport_subsystem_register(struct se_subsystem_api *);
 extern void transport_subsystem_release(struct se_subsystem_api *);
 extern void transport_load_plugins(void);
@@ -141,6 +125,8 @@ extern void transport_add_task_to_execute_queue(struct se_task *,
                                                struct se_device *);
 extern void transport_remove_task_from_execute_queue(struct se_task *,
                                                struct se_device *);
+extern void __transport_remove_task_from_execute_queue(struct se_task *,
+                                               struct se_device *);
 unsigned char *transport_dump_cmd_direction(struct se_cmd *);
 extern void transport_dump_dev_state(struct se_device *, char *, int *);
 extern void transport_dump_dev_info(struct se_device *, struct se_lun *,
@@ -175,7 +161,7 @@ extern int transport_generic_handle_data(struct se_cmd *);
 extern void transport_new_cmd_failure(struct se_cmd *);
 extern int transport_generic_handle_tmr(struct se_cmd *);
 extern void transport_generic_free_cmd_intr(struct se_cmd *);
-extern void __transport_stop_task_timer(struct se_task *, unsigned long *);
+extern bool target_stop_task(struct se_task *task, unsigned long *flags);
 extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32,
                                struct scatterlist *, u32);
 extern int transport_clear_lun_from_sessions(struct se_lun *);
@@ -186,10 +172,6 @@ extern void transport_send_task_abort(struct se_cmd *);
 extern void transport_release_cmd(struct se_cmd *);
 extern void transport_generic_free_cmd(struct se_cmd *, int);
 extern void transport_generic_wait_for_cmds(struct se_cmd *, int);
-extern int transport_init_task_sg(struct se_task *, struct se_mem *, u32);
-extern int transport_map_mem_to_sg(struct se_task *, struct list_head *,
-                                       struct scatterlist *, struct se_mem *,
-                                       struct se_mem **, u32 *, u32 *);
 extern void transport_do_task_sg_chain(struct se_cmd *);
 extern void transport_generic_process_write(struct se_cmd *);
 extern int transport_generic_new_cmd(struct se_cmd *);
@@ -198,6 +180,7 @@ extern int transport_generic_do_tmr(struct se_cmd *);
 extern int core_alua_check_nonop_delay(struct se_cmd *);
 /* From target_core_cdb.c */
 extern int transport_emulate_control_cdb(struct se_task *);
+extern void target_get_task_cdb(struct se_task *task, unsigned char *cdb);
 
 /*
  * Each se_transport_task_t can have N number of possible struct se_task's
@@ -225,6 +208,10 @@ struct se_subsystem_api {
         * Transport Type.
         */
        u8 transport_type;
+
+       unsigned int fua_write_emulated : 1;
+       unsigned int write_cache_emulated : 1;
+
        /*
         * struct module for struct se_hba references
         */
@@ -260,22 +247,6 @@ struct se_subsystem_api {
         */
        void (*free_device)(void *);
 
-       /*
-        * dpo_emulated():
-        */
-       int (*dpo_emulated)(struct se_device *);
-       /*
-        * fua_write_emulated():
-        */
-       int (*fua_write_emulated)(struct se_device *);
-       /*
-        * fua_read_emulated():
-        */
-       int (*fua_read_emulated)(struct se_device *);
-       /*
-        * write_cache_emulated():
-        */
-       int (*write_cache_emulated)(struct se_device *);
        /*
         * transport_complete():
         *
@@ -316,10 +287,6 @@ struct se_subsystem_api {
         */
        ssize_t (*show_configfs_dev_params)(struct se_hba *, struct se_subsystem_dev *,
                                                char *);
-       /*
-        * get_cdb():
-        */
-       unsigned char *(*get_cdb)(struct se_task *);
        /*
         * get_device_rev():
         */