Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

target: Minimize #include directives

Remove superfluous #include directives from the include/target/*.h
files. Add missing #include directives to other *.h and *.c files.
Use forward declarations for structures where possible. This
change reduces the build time for make M=drivers/target on my
laptop from 27.1s to 18.7s or by about 30%.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Bryant G. Ly <bryantly@linux.vnet.ibm.com>

+187 -25
+2
drivers/target/iscsi/iscsi_target.c
··· 23 23 #include <linux/module.h> 24 24 #include <linux/vmalloc.h> 25 25 #include <linux/idr.h> 26 + #include <linux/delay.h> 26 27 #include <asm/unaligned.h> 28 + #include <net/ipv6.h> 27 29 #include <scsi/scsi_proto.h> 28 30 #include <scsi/iscsi_proto.h> 29 31 #include <scsi/scsi_tcq.h>
+12
drivers/target/iscsi/iscsi_target.h
··· 1 1 #ifndef ISCSI_TARGET_H 2 2 #define ISCSI_TARGET_H 3 3 4 + #include <linux/types.h> 5 + #include <linux/spinlock.h> 6 + 7 + struct iscsi_cmd; 8 + struct iscsi_conn; 9 + struct iscsi_np; 10 + struct iscsi_portal_group; 11 + struct iscsi_session; 12 + struct iscsi_tpg_np; 13 + struct kref; 14 + struct sockaddr_storage; 15 + 4 16 extern struct iscsi_tiqn *iscsit_get_tiqn_for_login(unsigned char *); 5 17 extern struct iscsi_tiqn *iscsit_get_tiqn(unsigned char *, int); 6 18 extern void iscsit_put_tiqn_for_login(struct iscsi_tiqn *);
+1 -1
drivers/target/iscsi/iscsi_target_auth.c
··· 20 20 #include <linux/kernel.h> 21 21 #include <linux/string.h> 22 22 #include <linux/err.h> 23 + #include <linux/random.h> 23 24 #include <linux/scatterlist.h> 24 - 25 25 #include <target/iscsi/iscsi_target_core.h> 26 26 #include "iscsi_target_nego.h" 27 27 #include "iscsi_target_auth.h"
+5
drivers/target/iscsi/iscsi_target_auth.h
··· 1 1 #ifndef _ISCSI_CHAP_H_ 2 2 #define _ISCSI_CHAP_H_ 3 3 4 + #include <linux/types.h> 5 + 4 6 #define CHAP_DIGEST_UNKNOWN 0 5 7 #define CHAP_DIGEST_MD5 5 6 8 #define CHAP_DIGEST_SHA 6 ··· 19 17 #define CHAP_STAGE_CLIENT_NR 3 20 18 #define CHAP_STAGE_CLIENT_NRIC 4 21 19 #define CHAP_STAGE_SERVER_NR 5 20 + 21 + struct iscsi_node_auth; 22 + struct iscsi_conn; 22 23 23 24 extern u32 chap_main_loop(struct iscsi_conn *, struct iscsi_node_auth *, char *, char *, 24 25 int *, int *);
+2 -1
drivers/target/iscsi/iscsi_target_configfs.c
··· 21 21 #include <linux/ctype.h> 22 22 #include <linux/export.h> 23 23 #include <linux/inet.h> 24 + #include <linux/module.h> 25 + #include <net/ipv6.h> 24 26 #include <target/target_core_base.h> 25 27 #include <target/target_core_fabric.h> 26 28 #include <target/iscsi/iscsi_transport.h> 27 - 28 29 #include <target/iscsi/iscsi_target_core.h> 29 30 #include "iscsi_target_parameters.h" 30 31 #include "iscsi_target_device.h"
+1 -1
drivers/target/iscsi/iscsi_target_datain_values.c
··· 16 16 * GNU General Public License for more details. 17 17 ******************************************************************************/ 18 18 19 + #include <linux/slab.h> 19 20 #include <scsi/iscsi_proto.h> 20 - 21 21 #include <target/iscsi/iscsi_target_core.h> 22 22 #include "iscsi_target_seq_pdu_list.h" 23 23 #include "iscsi_target_erl1.h"
+3
drivers/target/iscsi/iscsi_target_datain_values.h
··· 1 1 #ifndef ISCSI_TARGET_DATAIN_VALUES_H 2 2 #define ISCSI_TARGET_DATAIN_VALUES_H 3 3 4 + struct iscsi_cmd; 5 + struct iscsi_datain; 6 + 4 7 extern struct iscsi_datain_req *iscsit_allocate_datain_req(void); 5 8 extern void iscsit_attach_datain_req(struct iscsi_cmd *, struct iscsi_datain_req *); 6 9 extern void iscsit_free_datain_req(struct iscsi_cmd *, struct iscsi_datain_req *);
+3
drivers/target/iscsi/iscsi_target_device.h
··· 1 1 #ifndef ISCSI_TARGET_DEVICE_H 2 2 #define ISCSI_TARGET_DEVICE_H 3 3 4 + struct iscsi_cmd; 5 + struct iscsi_session; 6 + 4 7 extern void iscsit_determine_maxcmdsn(struct iscsi_session *); 5 8 extern void iscsit_increment_maxcmdsn(struct iscsi_cmd *, struct iscsi_session *); 6 9
+6
drivers/target/iscsi/iscsi_target_erl0.h
··· 1 1 #ifndef ISCSI_TARGET_ERL0_H 2 2 #define ISCSI_TARGET_ERL0_H 3 3 4 + #include <linux/types.h> 5 + 6 + struct iscsi_cmd; 7 + struct iscsi_conn; 8 + struct iscsi_session; 9 + 4 10 extern void iscsit_set_dataout_sequence_values(struct iscsi_cmd *); 5 11 extern int iscsit_check_pre_dataout(struct iscsi_cmd *, unsigned char *); 6 12 extern int iscsit_check_post_dataout(struct iscsi_cmd *, unsigned char *, u8);
+1
drivers/target/iscsi/iscsi_target_erl1.c
··· 17 17 ******************************************************************************/ 18 18 19 19 #include <linux/list.h> 20 + #include <linux/slab.h> 20 21 #include <scsi/iscsi_proto.h> 21 22 #include <target/target_core_base.h> 22 23 #include <target/target_core_fabric.h>
+10
drivers/target/iscsi/iscsi_target_erl1.h
··· 1 1 #ifndef ISCSI_TARGET_ERL1_H 2 2 #define ISCSI_TARGET_ERL1_H 3 3 4 + #include <linux/types.h> 5 + #include <scsi/iscsi_proto.h> /* itt_t */ 6 + 7 + struct iscsi_cmd; 8 + struct iscsi_conn; 9 + struct iscsi_datain_req; 10 + struct iscsi_ooo_cmdsn; 11 + struct iscsi_pdu; 12 + struct iscsi_session; 13 + 4 14 extern int iscsit_dump_data_payload(struct iscsi_conn *, u32, int); 5 15 extern int iscsit_create_recovery_datain_values_datasequenceinorder_yes( 6 16 struct iscsi_cmd *, struct iscsi_datain_req *);
+1
drivers/target/iscsi/iscsi_target_erl2.c
··· 17 17 * GNU General Public License for more details. 18 18 ******************************************************************************/ 19 19 20 + #include <linux/slab.h> 20 21 #include <scsi/iscsi_proto.h> 21 22 #include <target/target_core_base.h> 22 23 #include <target/target_core_fabric.h>
+7
drivers/target/iscsi/iscsi_target_erl2.h
··· 1 1 #ifndef ISCSI_TARGET_ERL2_H 2 2 #define ISCSI_TARGET_ERL2_H 3 3 4 + #include <linux/types.h> 5 + 6 + struct iscsi_cmd; 7 + struct iscsi_conn; 8 + struct iscsi_conn_recovery; 9 + struct iscsi_session; 10 + 4 11 extern void iscsit_create_conn_recovery_datain_values(struct iscsi_cmd *, __be32); 5 12 extern void iscsit_create_conn_recovery_dataout_values(struct iscsi_cmd *); 6 13 extern struct iscsi_conn_recovery *iscsit_get_inactive_connection_recovery_entry(
+2
drivers/target/iscsi/iscsi_target_login.c
··· 20 20 #include <linux/string.h> 21 21 #include <linux/kthread.h> 22 22 #include <linux/idr.h> 23 + #include <linux/tcp.h> /* TCP_NODELAY */ 24 + #include <net/ipv6.h> /* ipv6_addr_v4mapped() */ 23 25 #include <scsi/iscsi_proto.h> 24 26 #include <target/target_core_base.h> 25 27 #include <target/target_core_fabric.h>
+7
drivers/target/iscsi/iscsi_target_login.h
··· 1 1 #ifndef ISCSI_TARGET_LOGIN_H 2 2 #define ISCSI_TARGET_LOGIN_H 3 3 4 + #include <linux/types.h> 5 + 6 + struct iscsi_conn; 7 + struct iscsi_login; 8 + struct iscsi_np; 9 + struct sockaddr_storage; 10 + 4 11 extern int iscsi_login_setup_crypto(struct iscsi_conn *); 5 12 extern int iscsi_check_for_session_reinstatement(struct iscsi_conn *); 6 13 extern int iscsi_login_post_auth_non_zero_tsih(struct iscsi_conn *, u16, u32);
+2
drivers/target/iscsi/iscsi_target_nego.c
··· 18 18 19 19 #include <linux/ctype.h> 20 20 #include <linux/kthread.h> 21 + #include <linux/slab.h> 22 + #include <net/sock.h> 21 23 #include <scsi/iscsi_proto.h> 22 24 #include <target/target_core_base.h> 23 25 #include <target/target_core_fabric.h>
+4
drivers/target/iscsi/iscsi_target_nego.h
··· 4 4 #define DECIMAL 0 5 5 #define HEX 1 6 6 7 + struct iscsi_conn; 8 + struct iscsi_login; 9 + struct iscsi_np; 10 + 7 11 extern void convert_null_to_semi(char *, int); 8 12 extern int extract_param(const char *, const char *, unsigned int, char *, 9 13 unsigned char *);
+5
drivers/target/iscsi/iscsi_target_nodeattrib.h
··· 1 1 #ifndef ISCSI_TARGET_NODEATTRIB_H 2 2 #define ISCSI_TARGET_NODEATTRIB_H 3 3 4 + #include <linux/types.h> 5 + 6 + struct iscsi_node_acl; 7 + struct iscsi_portal_group; 8 + 4 9 extern void iscsit_set_default_node_attribues(struct iscsi_node_acl *, 5 10 struct iscsi_portal_group *); 6 11 extern int iscsit_na_dataout_timeout(struct iscsi_node_acl *, u32);
+1 -1
drivers/target/iscsi/iscsi_target_parameters.c
··· 17 17 ******************************************************************************/ 18 18 19 19 #include <linux/slab.h> 20 - 20 + #include <linux/uio.h> /* struct kvec */ 21 21 #include <target/iscsi/iscsi_target_core.h> 22 22 #include "iscsi_target_util.h" 23 23 #include "iscsi_target_parameters.h"
+6
drivers/target/iscsi/iscsi_target_parameters.h
··· 1 1 #ifndef ISCSI_PARAMETERS_H 2 2 #define ISCSI_PARAMETERS_H 3 3 4 + #include <linux/types.h> 4 5 #include <scsi/iscsi_proto.h> 5 6 6 7 struct iscsi_extra_response { ··· 23 22 u32 state; 24 23 struct list_head p_list; 25 24 } ____cacheline_aligned; 25 + 26 + struct iscsi_conn; 27 + struct iscsi_conn_ops; 28 + struct iscsi_param_list; 29 + struct iscsi_sess_ops; 26 30 27 31 extern int iscsi_login_rx_data(struct iscsi_conn *, char *, int); 28 32 extern int iscsi_login_tx_data(struct iscsi_conn *, char *, char *, int);
+5
drivers/target/iscsi/iscsi_target_seq_pdu_list.h
··· 1 1 #ifndef ISCSI_SEQ_AND_PDU_LIST_H 2 2 #define ISCSI_SEQ_AND_PDU_LIST_H 3 3 4 + #include <linux/types.h> 5 + #include <linux/cache.h> 6 + 4 7 /* struct iscsi_pdu->status */ 5 8 #define DATAOUT_PDU_SENT 1 6 9 ··· 80 77 u32 seq_no; 81 78 u32 xfer_len; 82 79 } ____cacheline_aligned; 80 + 81 + struct iscsi_cmd; 83 82 84 83 extern int iscsit_build_pdu_and_seq_lists(struct iscsi_cmd *, u32); 85 84 extern struct iscsi_pdu *iscsit_get_pdu_holder(struct iscsi_cmd *, u32, u32);
+6
drivers/target/iscsi/iscsi_target_tmr.h
··· 1 1 #ifndef ISCSI_TARGET_TMR_H 2 2 #define ISCSI_TARGET_TMR_H 3 3 4 + #include <linux/types.h> 5 + 6 + struct iscsi_cmd; 7 + struct iscsi_conn; 8 + struct iscsi_tmr_req; 9 + 4 10 extern u8 iscsit_tmr_abort_task(struct iscsi_cmd *, unsigned char *); 5 11 extern int iscsit_tmr_task_warm_reset(struct iscsi_conn *, struct iscsi_tmr_req *, 6 12 unsigned char *);
+1 -1
drivers/target/iscsi/iscsi_target_tpg.c
··· 16 16 * GNU General Public License for more details. 17 17 ******************************************************************************/ 18 18 19 + #include <linux/slab.h> 19 20 #include <target/target_core_base.h> 20 21 #include <target/target_core_fabric.h> 21 - 22 22 #include <target/iscsi/iscsi_target_core.h> 23 23 #include "iscsi_target_erl0.h" 24 24 #include "iscsi_target_login.h"
+9
drivers/target/iscsi/iscsi_target_tpg.h
··· 1 1 #ifndef ISCSI_TARGET_TPG_H 2 2 #define ISCSI_TARGET_TPG_H 3 3 4 + #include <linux/types.h> 5 + 6 + struct iscsi_np; 7 + struct iscsi_session; 8 + struct iscsi_tiqn; 9 + struct iscsi_tpg_np; 10 + struct se_node_acl; 11 + struct sockaddr_storage; 12 + 4 13 extern struct iscsi_portal_group *iscsit_alloc_portal_group(struct iscsi_tiqn *, u16); 5 14 extern int iscsit_load_discovery_tpg(void); 6 15 extern void iscsit_release_discovery_tpg(void);
+1
drivers/target/iscsi/iscsi_target_transport.c
··· 1 1 #include <linux/spinlock.h> 2 2 #include <linux/list.h> 3 + #include <linux/module.h> 3 4 #include <target/iscsi/iscsi_transport.h> 4 5 5 6 static LIST_HEAD(g_transport_list);
+1
drivers/target/iscsi/iscsi_target_util.c
··· 18 18 19 19 #include <linux/list.h> 20 20 #include <linux/percpu_ida.h> 21 + #include <net/ipv6.h> /* ipv6_addr_equal() */ 21 22 #include <scsi/scsi_tcq.h> 22 23 #include <scsi/iscsi_proto.h> 23 24 #include <target/target_core_base.h>
+8
drivers/target/iscsi/iscsi_target_util.h
··· 1 1 #ifndef ISCSI_TARGET_UTIL_H 2 2 #define ISCSI_TARGET_UTIL_H 3 3 4 + #include <linux/types.h> 5 + #include <scsi/iscsi_proto.h> /* itt_t */ 6 + 4 7 #define MARKER_SIZE 8 8 + 9 + struct iscsi_cmd; 10 + struct iscsi_conn; 11 + struct iscsi_conn_recovery; 12 + struct iscsi_session; 5 13 6 14 extern int iscsit_add_r2t_to_list(struct iscsi_cmd *, u32, u32, int, u32); 7 15 extern struct iscsi_r2t *iscsit_get_r2t_for_eos(struct iscsi_cmd *, u32, u32);
+4
drivers/target/loopback/tcm_loop.h
··· 1 + #include <linux/types.h> 2 + #include <linux/device.h> 3 + #include <target/target_core_base.h> /* struct se_cmd */ 4 + 1 5 #define TCM_LOOP_VERSION "v2.1-rc2" 2 6 #define TL_WWN_ADDR_LEN 256 3 7 #define TL_TPGS_PER_HBA 32
+3
drivers/target/target_core_alua.c
··· 26 26 #include <linux/slab.h> 27 27 #include <linux/spinlock.h> 28 28 #include <linux/configfs.h> 29 + #include <linux/delay.h> 29 30 #include <linux/export.h> 31 + #include <linux/fcntl.h> 30 32 #include <linux/file.h> 33 + #include <linux/fs.h> 31 34 #include <scsi/scsi_proto.h> 32 35 #include <asm/unaligned.h> 33 36
+2
drivers/target/target_core_alua.h
··· 1 1 #ifndef TARGET_CORE_ALUA_H 2 2 #define TARGET_CORE_ALUA_H 3 3 4 + #include <target/target_core_base.h> 5 + 4 6 /* 5 7 * INQUIRY response data, TPGS Field 6 8 *
+1
drivers/target/target_core_device.c
··· 33 33 #include <linux/kthread.h> 34 34 #include <linux/in.h> 35 35 #include <linux/export.h> 36 + #include <linux/t10-pi.h> 36 37 #include <asm/unaligned.h> 37 38 #include <net/sock.h> 38 39 #include <net/tcp.h>
+1
drivers/target/target_core_file.c
··· 32 32 #include <linux/module.h> 33 33 #include <linux/vmalloc.h> 34 34 #include <linux/falloc.h> 35 + #include <linux/uio.h> 35 36 #include <scsi/scsi_proto.h> 36 37 #include <asm/unaligned.h> 37 38
+2
drivers/target/target_core_file.h
··· 1 1 #ifndef TARGET_CORE_FILE_H 2 2 #define TARGET_CORE_FILE_H 3 3 4 + #include <target/target_core_base.h> 5 + 4 6 #define FD_VERSION "4.0" 5 7 6 8 #define FD_MAX_DEV_NAME 256
+3
drivers/target/target_core_iblock.h
··· 1 1 #ifndef TARGET_CORE_IBLOCK_H 2 2 #define TARGET_CORE_IBLOCK_H 3 3 4 + #include <linux/atomic.h> 5 + #include <target/target_core_base.h> 6 + 4 7 #define IBLOCK_VERSION "4.0" 5 8 6 9 #define IBLOCK_MAX_CDBS 16
+5
drivers/target/target_core_internal.h
··· 1 1 #ifndef TARGET_CORE_INTERNAL_H 2 2 #define TARGET_CORE_INTERNAL_H 3 3 4 + #include <linux/configfs.h> 5 + #include <linux/list.h> 6 + #include <linux/types.h> 7 + #include <target/target_core_base.h> 8 + 4 9 #define TARGET_CORE_NAME_MAX_LEN 64 5 10 #define TARGET_FABRIC_NAME_SIZE 32 6 11
+2
drivers/target/target_core_pr.c
··· 29 29 #include <linux/list.h> 30 30 #include <linux/vmalloc.h> 31 31 #include <linux/file.h> 32 + #include <linux/fcntl.h> 33 + #include <linux/fs.h> 32 34 #include <scsi/scsi_proto.h> 33 35 #include <asm/unaligned.h> 34 36
+4
drivers/target/target_core_pr.h
··· 1 1 #ifndef TARGET_CORE_PR_H 2 2 #define TARGET_CORE_PR_H 3 + 4 + #include <linux/types.h> 5 + #include <target/target_core_base.h> 6 + 3 7 /* 4 8 * PERSISTENT_RESERVE_OUT service action codes 5 9 *
+4 -3
drivers/target/target_core_pscsi.h
··· 15 15 #define PS_TIMEOUT_DISK (15*HZ) 16 16 #define PS_TIMEOUT_OTHER (500*HZ) 17 17 18 - #include <linux/device.h> 19 - #include <linux/kref.h> 20 - #include <linux/kobject.h> 18 + #include <linux/cache.h> /* ___cacheline_aligned */ 19 + #include <target/target_core_base.h> /* struct se_device */ 21 20 21 + struct block_device; 22 22 struct scsi_device; 23 + struct Scsi_Host; 23 24 24 25 struct pscsi_plugin_task { 25 26 unsigned char pscsi_sense[TRANSPORT_SENSE_BUFFER];
+2
drivers/target/target_core_rd.c
··· 26 26 27 27 #include <linux/string.h> 28 28 #include <linux/parser.h> 29 + #include <linux/highmem.h> 29 30 #include <linux/timer.h> 31 + #include <linux/scatterlist.h> 30 32 #include <linux/slab.h> 31 33 #include <linux/spinlock.h> 32 34 #include <scsi/scsi_proto.h>
+4
drivers/target/target_core_rd.h
··· 1 1 #ifndef TARGET_CORE_RD_H 2 2 #define TARGET_CORE_RD_H 3 3 4 + #include <linux/module.h> 5 + #include <linux/types.h> 6 + #include <target/target_core_base.h> 7 + 4 8 #define RD_HBA_VERSION "v4.0" 5 9 #define RD_MCP_VERSION "4.0" 6 10
+1
drivers/target/target_core_sbc.c
··· 24 24 #include <linux/module.h> 25 25 #include <linux/ratelimit.h> 26 26 #include <linux/crc-t10dif.h> 27 + #include <linux/t10-pi.h> 27 28 #include <asm/unaligned.h> 28 29 #include <scsi/scsi_proto.h> 29 30 #include <scsi/scsi_tcq.h>
+2
drivers/target/target_core_ua.h
··· 1 1 #ifndef TARGET_CORE_UA_H 2 2 #define TARGET_CORE_UA_H 3 3 4 + #include <target/target_core_base.h> 5 + 4 6 /* 5 7 * From spc4r17, Table D.1: ASC and ASCQ Assignement 6 8 */
+1
drivers/target/target_core_xcopy.c
··· 25 25 #include <linux/spinlock.h> 26 26 #include <linux/list.h> 27 27 #include <linux/configfs.h> 28 + #include <linux/ratelimit.h> 28 29 #include <scsi/scsi_proto.h> 29 30 #include <asm/unaligned.h> 30 31
+2
drivers/target/target_core_xcopy.h
··· 1 + #include <target/target_core_base.h> 2 + 1 3 #define XCOPY_TARGET_DESC_LEN 32 2 4 #define XCOPY_SEGMENT_DESC_LEN 28 3 5 #define XCOPY_NAA_IEEE_REGEX_LEN 16
+3
drivers/target/tcm_fc/tcm_fc.h
··· 17 17 #ifndef __TCM_FC_H__ 18 18 #define __TCM_FC_H__ 19 19 20 + #include <linux/types.h> 21 + #include <target/target_core_base.h> 22 + 20 23 #define FT_VERSION "0.4" 21 24 22 25 #define FT_NAMELEN 32 /* length of ASCII WWPNs including pad */
+8 -6
include/target/iscsi/iscsi_target_core.h
··· 1 1 #ifndef ISCSI_TARGET_CORE_H 2 2 #define ISCSI_TARGET_CORE_H 3 3 4 - #include <linux/in.h> 5 - #include <linux/configfs.h> 6 - #include <net/sock.h> 7 - #include <net/tcp.h> 8 - #include <scsi/iscsi_proto.h> 9 - #include <target/target_core_base.h> 4 + #include <linux/dma-direction.h> /* enum dma_data_direction */ 5 + #include <linux/list.h> /* struct list_head */ 6 + #include <linux/socket.h> /* struct sockaddr_storage */ 7 + #include <linux/types.h> /* u8 */ 8 + #include <scsi/iscsi_proto.h> /* itt_t */ 9 + #include <target/target_core_base.h> /* struct se_cmd */ 10 + 11 + struct sock; 10 12 11 13 #define ISCSIT_VERSION "v4.1.0" 12 14 #define ISCSI_MAX_DATASN_MISSING_COUNT 16
+4
include/target/iscsi/iscsi_target_stat.h
··· 1 1 #ifndef ISCSI_TARGET_STAT_H 2 2 #define ISCSI_TARGET_STAT_H 3 3 4 + #include <linux/types.h> 5 + #include <linux/spinlock.h> 6 + #include <linux/socket.h> 7 + 4 8 /* 5 9 * For struct iscsi_tiqn->tiqn_wwn default groups 6 10 */
+3 -3
include/target/iscsi/iscsi_transport.h
··· 1 - #include <linux/module.h> 2 - #include <linux/list.h> 3 - #include "iscsi_target_core.h" 1 + #include "iscsi_target_core.h" /* struct iscsi_cmd */ 2 + 3 + struct sockaddr_storage; 4 4 5 5 struct iscsit_transport { 6 6 #define ISCSIT_TRANSPORT_NAME 16
+6
include/target/target_core_backend.h
··· 1 1 #ifndef TARGET_CORE_BACKEND_H 2 2 #define TARGET_CORE_BACKEND_H 3 3 4 + #include <linux/types.h> 5 + #include <target/target_core_base.h> 6 + 4 7 #define TRANSPORT_FLAG_PASSTHROUGH 1 8 + 9 + struct request_queue; 10 + struct scatterlist; 5 11 6 12 struct target_backend_ops { 7 13 char name[16];
+4 -8
include/target/target_core_base.h
··· 1 1 #ifndef TARGET_CORE_BASE_H 2 2 #define TARGET_CORE_BASE_H 3 3 4 - #include <linux/in.h> 5 - #include <linux/configfs.h> 6 - #include <linux/dma-mapping.h> 7 - #include <linux/blkdev.h> 8 - #include <linux/percpu_ida.h> 9 - #include <linux/t10-pi.h> 10 - #include <net/sock.h> 11 - #include <net/tcp.h> 4 + #include <linux/configfs.h> /* struct config_group */ 5 + #include <linux/dma-direction.h> /* enum dma_data_direction */ 6 + #include <linux/percpu_ida.h> /* struct percpu_ida */ 7 + #include <linux/semaphore.h> /* struct semaphore */ 12 8 13 9 #define TARGET_CORE_VERSION "v5.0" 14 10
+4
include/target/target_core_fabric.h
··· 1 1 #ifndef TARGET_CORE_FABRIC_H 2 2 #define TARGET_CORE_FABRIC_H 3 3 4 + #include <linux/configfs.h> 5 + #include <linux/types.h> 6 + #include <target/target_core_base.h> 7 + 4 8 struct target_core_fabric_ops { 5 9 struct module *module; 6 10 const char *name;