> +static void *lcore_buffer; [...] > + lcore_buffer = aligned_alloc(RTE_CACHE_LINE_SIZE, > + LCORE_BUFFER_SIZE);
Since lcore_buffer is never freed again, it is easy to support Windows: #ifdef RTE_EXEC_ENV_WINDOWS #include <malloc.h> #endif #ifndef RTE_EXEC_ENV_WINDOWS lcore_buffer = aligned_alloc(RTE_CACHE_LINE_SIZE, LCORE_BUFFER_SIZE); #else /* Never freed again, so don't worry about _aligned_free(). */ lcore_buffer = _aligned_malloc(LCORE_BUFFER_SIZE, RTE_CACHE_LINE_SIZE); #endif Ref: https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/aligned-malloc?view=msvc-170 NB: Note the opposite parameter order.