static IPPair *IPPairGetUsedIPPair(void);
+/** ippair hash table */
+IPPairHashRow *ippair_hash;
/** queue with spare ippairs */
static IPPairQueue ippair_spare_q;
+IPPairConfig ippair_config;
+SC_ATOMIC_DECLARE(uint64_t,ippair_memuse);
+SC_ATOMIC_DECLARE(uint32_t,ippair_counter);
+SC_ATOMIC_DECLARE(uint32_t,ippair_prune_idx);
/** size of the ippair object. Maybe updated in IPPairInitConfig to include
* the storage APIs additions. */
} __attribute__((aligned(CLS))) IPPairHashRow;
/** ippair hash table */
-IPPairHashRow *ippair_hash;
+extern IPPairHashRow *ippair_hash;
#define IPPAIR_VERBOSE 0
#define IPPAIR_QUIET 1
} \
} while (0)
-IPPairConfig ippair_config;
-SC_ATOMIC_DECLARE(uint64_t,ippair_memuse);
-SC_ATOMIC_DECLARE(uint32_t,ippair_counter);
-SC_ATOMIC_DECLARE(uint32_t,ippair_prune_idx);
+extern IPPairConfig ippair_config;
+SC_ATOMIC_EXTERN(uint64_t,ippair_memuse);
+SC_ATOMIC_EXTERN(uint32_t,ippair_counter);
+SC_ATOMIC_EXTERN(uint32_t,ippair_prune_idx);
void IPPairInitConfig(char quiet);
void IPPairShutdown(void);