From 812b32dd8f637118bf65de2cdff0e95b421a963b Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 28 May 2018 21:26:47 +0200 Subject: Add VLIB_NODE_FN() macro to simplify multiversioning of node functions Change-Id: Ibab5e27277f618ceb2d543b9d6a1a5f191e7d1db Signed-off-by: Damjan Marion --- src/plugins/avf/input.c | 20 ++------------------ src/plugins/avf/output.c | 2 +- 2 files changed, 3 insertions(+), 19 deletions(-) (limited to 'src/plugins/avf') diff --git a/src/plugins/avf/input.c b/src/plugins/avf/input.c index 931bfa39de9..5b7f48a3ed7 100644 --- a/src/plugins/avf/input.c +++ b/src/plugins/avf/input.c @@ -375,8 +375,7 @@ avf_device_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, return n_rx_packets; } -uword -CLIB_MULTIARCH_FN (avf_input) (vlib_main_t * vm, vlib_node_runtime_t * node, +VLIB_NODE_FN (avf_input_node) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { u32 n_rx = 0; @@ -399,10 +398,9 @@ CLIB_MULTIARCH_FN (avf_input) (vlib_main_t * vm, vlib_node_runtime_t * node, return n_rx; } -#ifndef CLIB_MULTIARCH_VARIANT +#ifndef CLIB_MARCH_VARIANT /* *INDENT-OFF* */ VLIB_REGISTER_NODE (avf_input_node) = { - .function = avf_input, .name = "avf-input", .sibling_of = "device-input", .format_trace = format_avf_input_trace, @@ -411,20 +409,6 @@ VLIB_REGISTER_NODE (avf_input_node) = { .n_errors = AVF_INPUT_N_ERROR, .error_strings = avf_input_error_strings, }; - -#if __x86_64__ -vlib_node_function_t __clib_weak avf_input_avx512; -vlib_node_function_t __clib_weak avf_input_avx2; -static void __clib_constructor -avf_input_multiarch_select (void) -{ - if (avf_input_avx512 && clib_cpu_supports_avx512f ()) - avf_input_node.function = avf_input_avx512; - else if (avf_input_avx2 && clib_cpu_supports_avx2 ()) - avf_input_node.function = avf_input_avx2; -} - -#endif #endif /* *INDENT-ON* */ diff --git a/src/plugins/avf/output.c b/src/plugins/avf/output.c index 8e5fa6a43f8..ec4d7f6c0a2 100644 --- a/src/plugins/avf/output.c +++ b/src/plugins/avf/output.c @@ -159,7 +159,7 @@ CLIB_MULTIARCH_FN (avf_interface_tx) (vlib_main_t * vm, return frame->n_vectors - n_left; } -#ifndef CLIB_MULTIARCH_VARIANT +#ifndef CLIB_MARCH_VARIANT #if __x86_64__ vlib_node_function_t __clib_weak avf_interface_tx_avx512; vlib_node_function_t __clib_weak avf_interface_tx_avx2; -- cgit 1.2.3-korg