aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/devices
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/vnet/devices
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/vnet/devices')
-rw-r--r--src/vnet/devices/af_packet/af_packet.c2
-rw-r--r--src/vnet/devices/af_packet/af_packet.h2
-rw-r--r--src/vnet/devices/netmap/netmap.c2
-rw-r--r--src/vnet/devices/netmap/netmap.h2
-rw-r--r--src/vnet/devices/ssvm/ssvm_eth.h2
5 files changed, 7 insertions, 3 deletions
diff --git a/src/vnet/devices/af_packet/af_packet.c b/src/vnet/devices/af_packet/af_packet.c
index e7bbdfd86ae..d0a241e2a2e 100644
--- a/src/vnet/devices/af_packet/af_packet.c
+++ b/src/vnet/devices/af_packet/af_packet.c
@@ -32,6 +32,8 @@
#include <vnet/devices/af_packet/af_packet.h>
+af_packet_main_t af_packet_main;
+
#define AF_PACKET_DEBUG_SOCKET 0
#define AF_PACKET_TX_FRAMES_PER_BLOCK 1024
diff --git a/src/vnet/devices/af_packet/af_packet.h b/src/vnet/devices/af_packet/af_packet.h
index 66e2dea5169..b095e7ffcd1 100644
--- a/src/vnet/devices/af_packet/af_packet.h
+++ b/src/vnet/devices/af_packet/af_packet.h
@@ -56,7 +56,7 @@ typedef struct
mhash_t if_index_by_host_if_name;
} af_packet_main_t;
-af_packet_main_t af_packet_main;
+extern af_packet_main_t af_packet_main;
extern vnet_device_class_t af_packet_device_class;
extern vlib_node_registration_t af_packet_input_node;
diff --git a/src/vnet/devices/netmap/netmap.c b/src/vnet/devices/netmap/netmap.c
index fc49ed629b8..25a3af73451 100644
--- a/src/vnet/devices/netmap/netmap.c
+++ b/src/vnet/devices/netmap/netmap.c
@@ -27,6 +27,8 @@
#include <vnet/ethernet/ethernet.h>
#include <vnet/devices/netmap/netmap.h>
+netmap_main_t netmap_main;
+
static u32
netmap_eth_flag_change (vnet_main_t * vnm, vnet_hw_interface_t * hi,
u32 flags)
diff --git a/src/vnet/devices/netmap/netmap.h b/src/vnet/devices/netmap/netmap.h
index 047318909c9..29f855fda8e 100644
--- a/src/vnet/devices/netmap/netmap.h
+++ b/src/vnet/devices/netmap/netmap.h
@@ -98,7 +98,7 @@ typedef struct
u32 input_cpu_count;
} netmap_main_t;
-netmap_main_t netmap_main;
+extern netmap_main_t netmap_main;
extern vnet_device_class_t netmap_device_class;
extern vlib_node_registration_t netmap_input_node;
diff --git a/src/vnet/devices/ssvm/ssvm_eth.h b/src/vnet/devices/ssvm/ssvm_eth.h
index f877df3cd33..7f9aaad3e82 100644
--- a/src/vnet/devices/ssvm/ssvm_eth.h
+++ b/src/vnet/devices/ssvm/ssvm_eth.h
@@ -82,7 +82,7 @@ typedef struct
elog_main_t *elog_main;
} ssvm_eth_main_t;
-ssvm_eth_main_t ssvm_eth_main;
+extern ssvm_eth_main_t ssvm_eth_main;
typedef enum
{