1 #ifndef TARGET_CORE_TMR_H
2 #define TARGET_CORE_TMR_H
3 
4 /* fabric independent task management function values */
5 enum tcm_tmreq_table {
6 	TMR_ABORT_TASK		= 1,
7 	TMR_ABORT_TASK_SET	= 2,
8 	TMR_CLEAR_ACA		= 3,
9 	TMR_CLEAR_TASK_SET	= 4,
10 	TMR_LUN_RESET		= 5,
11 	TMR_TARGET_WARM_RESET	= 6,
12 	TMR_TARGET_COLD_RESET	= 7,
13 	TMR_FABRIC_TMR		= 255,
14 };
15 
16 /* fabric independent task management response values */
17 enum tcm_tmrsp_table {
18 	TMR_FUNCTION_COMPLETE		= 0,
19 	TMR_TASK_DOES_NOT_EXIST		= 1,
20 	TMR_LUN_DOES_NOT_EXIST		= 2,
21 	TMR_TASK_STILL_ALLEGIANT	= 3,
22 	TMR_TASK_FAILOVER_NOT_SUPPORTED	= 4,
23 	TMR_TASK_MGMT_FUNCTION_NOT_SUPPORTED	= 5,
24 	TMR_FUNCTION_AUTHORIZATION_FAILED = 6,
25 	TMR_FUNCTION_REJECTED		= 255,
26 };
27 
28 extern struct kmem_cache *se_tmr_req_cache;
29 
30 extern struct se_tmr_req *core_tmr_alloc_req(struct se_cmd *, void *, u8);
31 extern void core_tmr_release_req(struct se_tmr_req *);
32 extern int core_tmr_lun_reset(struct se_device *, struct se_tmr_req *,
33 				struct list_head *, struct se_cmd *);
34 
35 #endif /* TARGET_CORE_TMR_H */
36