aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorDave Wallace <dwallacelf@gmail.com>2017-10-24 01:32:41 -0400
committerDave Wallace <dwallacelf@gmail.com>2017-10-24 01:32:41 -0400
commit71612d61930e57e7c8ebf9e5647b15a4b23720b2 (patch)
tree3c135af6d40442f5ae9f8397c62080e2b7e3f342 /src/plugins
parent92b0275a364022af6ab828dfac83e38c0117cfe6 (diff)
Add extern to *_main global variable declarations in header files.
- Global variables declared in header files without the use of the 'extern' keword will result in multiple instances of the variable to be created by the compiler -- one for each different source file in which the the header file is included. This results in wasted memory allocated in the BSS segments as well as potentially introducing bugs in the application. Change-Id: I6ef1790b60a0bd9dd3994f8510723decf258b0cc Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/dpdk/device/dpdk.h2
-rwxr-xr-xsrc/plugins/dpdk/device/init.c1
-rw-r--r--src/plugins/dpdk/ipsec/ipsec.c2
-rw-r--r--src/plugins/dpdk/ipsec/ipsec.h2
-rw-r--r--src/plugins/gtpu/gtpu.h2
-rw-r--r--src/plugins/ioam/ip6/ioam_cache.c2
-rw-r--r--src/plugins/ioam/ip6/ioam_cache.h2
-rw-r--r--src/plugins/ixge/ixge.h4
-rw-r--r--src/plugins/sixrd/sixrd.c2
-rw-r--r--src/plugins/sixrd/sixrd.h2
10 files changed, 14 insertions, 7 deletions
diff --git a/src/plugins/dpdk/device/dpdk.h b/src/plugins/dpdk/device/dpdk.h
index 9762c7137f5..a0c57ea21b3 100644
--- a/src/plugins/dpdk/device/dpdk.h
+++ b/src/plugins/dpdk/device/dpdk.h
@@ -332,7 +332,7 @@ typedef struct
} dpdk_config_main_t;
-dpdk_config_main_t dpdk_config_main;
+extern dpdk_config_main_t dpdk_config_main;
typedef struct
{
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index e94d2fa8588..9e7bb75d6f3 100755
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -37,6 +37,7 @@
#include <dpdk/device/dpdk_priv.h>
dpdk_main_t dpdk_main;
+dpdk_config_main_t dpdk_config_main;
#define LINK_STATE_ELOGS 0
diff --git a/src/plugins/dpdk/ipsec/ipsec.c b/src/plugins/dpdk/ipsec/ipsec.c
index 4bae8c1b0f4..6aa5fae8b26 100644
--- a/src/plugins/dpdk/ipsec/ipsec.c
+++ b/src/plugins/dpdk/ipsec/ipsec.c
@@ -21,6 +21,8 @@
#include <dpdk/device/dpdk.h>
#include <dpdk/ipsec/ipsec.h>
+dpdk_crypto_main_t dpdk_crypto_main;
+
#define EMPTY_STRUCT {0}
static void
diff --git a/src/plugins/dpdk/ipsec/ipsec.h b/src/plugins/dpdk/ipsec/ipsec.h
index 98e5ad53acb..22890628ec6 100644
--- a/src/plugins/dpdk/ipsec/ipsec.h
+++ b/src/plugins/dpdk/ipsec/ipsec.h
@@ -144,7 +144,7 @@ typedef struct
u8 enabled;
} dpdk_crypto_main_t;
-dpdk_crypto_main_t dpdk_crypto_main;
+extern dpdk_crypto_main_t dpdk_crypto_main;
static const u8 pad_data[] =
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0 };
diff --git a/src/plugins/gtpu/gtpu.h b/src/plugins/gtpu/gtpu.h
index 744d21d4266..b1e677d4f29 100644
--- a/src/plugins/gtpu/gtpu.h
+++ b/src/plugins/gtpu/gtpu.h
@@ -228,7 +228,7 @@ typedef struct
vnet_main_t *vnet_main;
} gtpu_main_t;
-gtpu_main_t gtpu_main;
+extern gtpu_main_t gtpu_main;
extern vlib_node_registration_t gtpu4_input_node;
extern vlib_node_registration_t gtpu6_input_node;
diff --git a/src/plugins/ioam/ip6/ioam_cache.c b/src/plugins/ioam/ip6/ioam_cache.c
index 4e147da34dc..627f8b65d13 100644
--- a/src/plugins/ioam/ip6/ioam_cache.c
+++ b/src/plugins/ioam/ip6/ioam_cache.c
@@ -55,6 +55,8 @@
#define REPLY_MSG_ID_BASE cm->msg_id_base
#include <vlibapi/api_helper_macros.h>
+ioam_cache_main_t ioam_cache_main;
+
/* List of message types that this plugin understands */
#define foreach_ioam_cache_plugin_api_msg \
_(IOAM_CACHE_IP6_ENABLE_DISABLE, ioam_cache_ip6_enable_disable)
diff --git a/src/plugins/ioam/ip6/ioam_cache.h b/src/plugins/ioam/ip6/ioam_cache.h
index 25a8fb65729..338ed9828ee 100644
--- a/src/plugins/ioam/ip6/ioam_cache.h
+++ b/src/plugins/ioam/ip6/ioam_cache.h
@@ -203,7 +203,7 @@ typedef struct
u32 cleanup_process_node_index;
} ioam_cache_main_t;
-ioam_cache_main_t ioam_cache_main;
+extern ioam_cache_main_t ioam_cache_main;
extern vlib_node_registration_t ioam_cache_node;
extern vlib_node_registration_t ioam_cache_ts_node;
diff --git a/src/plugins/ixge/ixge.h b/src/plugins/ixge/ixge.h
index 42c1bfa5c9b..a87af1ab04b 100644
--- a/src/plugins/ixge/ixge.h
+++ b/src/plugins/ixge/ixge.h
@@ -1270,8 +1270,8 @@ typedef struct
vlib_physmem_region_index_t physmem_region;
} ixge_main_t;
-ixge_main_t ixge_main;
-vnet_device_class_t ixge_device_class;
+extern ixge_main_t ixge_main;
+extern vnet_device_class_t ixge_device_class;
typedef enum
{
diff --git a/src/plugins/sixrd/sixrd.c b/src/plugins/sixrd/sixrd.c
index 983875257e3..ee198f21004 100644
--- a/src/plugins/sixrd/sixrd.c
+++ b/src/plugins/sixrd/sixrd.c
@@ -32,6 +32,8 @@
* ea_bits_len = 0
*/
+sixrd_main_t sixrd_main;
+
int
sixrd_create_domain (ip6_address_t *ip6_prefix,
u8 ip6_prefix_len,
diff --git a/src/plugins/sixrd/sixrd.h b/src/plugins/sixrd/sixrd.h
index 56714c9e3bd..f911461b1cd 100644
--- a/src/plugins/sixrd/sixrd.h
+++ b/src/plugins/sixrd/sixrd.h
@@ -79,7 +79,7 @@ typedef struct {
u32 sixrd_domain_index;
} sixrd_trace_t;
-sixrd_main_t sixrd_main;
+extern sixrd_main_t sixrd_main;
/*
* sixrd_get_addr