eal/windows: hide asprintf shim
Make asprintf(3) implementation for Windows private to EAL, so that it's hidden from external consumers. It is not exposed to internal consumers either, because they don't need asprintf() and also because callers from other modules would have no reliable way to free allocated memory. Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Khoa To <khot@microsoft.com> Acked-by: Nick Connolly <nick.connolly@mayadata.io> Acked-by: Ranjit Menon <ranjit.menon@intel.com>
This commit is contained in:
parent
3ab385063c
commit
9ec521006d
@ -716,4 +716,15 @@ void __rte_thread_init(unsigned int lcore_id, rte_cpuset_t *cpuset);
|
|||||||
*/
|
*/
|
||||||
void __rte_thread_uninit(void);
|
void __rte_thread_uninit(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* asprintf(3) replacement for Windows.
|
||||||
|
*/
|
||||||
|
#ifdef RTE_EXEC_ENV_WINDOWS
|
||||||
|
__rte_format_printf(2, 3)
|
||||||
|
int eal_asprintf(char **buffer, const char *format, ...);
|
||||||
|
|
||||||
|
#define asprintf(buffer, format, ...) \
|
||||||
|
eal_asprintf(buffer, format, ##__VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _EAL_PRIVATE_H_ */
|
#endif /* _EAL_PRIVATE_H_ */
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
* Copyright(c) 2019 Intel Corporation
|
* Copyright(c) 2019 Intel Corporation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <share.h>
|
#include <share.h>
|
||||||
@ -416,6 +418,34 @@ rte_eal_init(int argc, char **argv)
|
|||||||
return fctret;
|
return fctret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Don't use MinGW asprintf() to have identical code with all toolchains. */
|
||||||
|
int
|
||||||
|
eal_asprintf(char **buffer, const char *format, ...)
|
||||||
|
{
|
||||||
|
int size, ret;
|
||||||
|
va_list arg;
|
||||||
|
|
||||||
|
va_start(arg, format);
|
||||||
|
size = vsnprintf(NULL, 0, format, arg);
|
||||||
|
va_end(arg);
|
||||||
|
if (size < 0)
|
||||||
|
return -1;
|
||||||
|
size++;
|
||||||
|
|
||||||
|
*buffer = malloc(size);
|
||||||
|
if (*buffer == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
va_start(arg, format);
|
||||||
|
ret = vsnprintf(*buffer, size, format, arg);
|
||||||
|
va_end(arg);
|
||||||
|
if (ret != size - 1) {
|
||||||
|
free(*buffer);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
rte_vfio_container_dma_map(__rte_unused int container_fd,
|
rte_vfio_container_dma_map(__rte_unused int container_fd,
|
||||||
__rte_unused uint64_t vaddr,
|
__rte_unused uint64_t vaddr,
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
* which is not supported natively or named differently in Windows.
|
* which is not supported natively or named differently in Windows.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -71,34 +70,6 @@ extern "C" {
|
|||||||
typedef long long ssize_t;
|
typedef long long ssize_t;
|
||||||
|
|
||||||
#ifndef RTE_TOOLCHAIN_GCC
|
#ifndef RTE_TOOLCHAIN_GCC
|
||||||
|
|
||||||
static inline int
|
|
||||||
asprintf(char **buffer, const char *format, ...)
|
|
||||||
{
|
|
||||||
int size, ret;
|
|
||||||
va_list arg;
|
|
||||||
|
|
||||||
va_start(arg, format);
|
|
||||||
size = vsnprintf(NULL, 0, format, arg);
|
|
||||||
va_end(arg);
|
|
||||||
if (size < 0)
|
|
||||||
return -1;
|
|
||||||
size++;
|
|
||||||
|
|
||||||
*buffer = (char *)malloc(size);
|
|
||||||
if (*buffer == NULL)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
va_start(arg, format);
|
|
||||||
ret = vsnprintf(*buffer, size, format, arg);
|
|
||||||
va_end(arg);
|
|
||||||
if (ret != size - 1) {
|
|
||||||
free(*buffer);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const char *
|
static inline const char *
|
||||||
eal_strerror(int code)
|
eal_strerror(int code)
|
||||||
{
|
{
|
||||||
@ -111,7 +82,6 @@ eal_strerror(int code)
|
|||||||
#ifndef strerror
|
#ifndef strerror
|
||||||
#define strerror eal_strerror
|
#define strerror eal_strerror
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* RTE_TOOLCHAIN_GCC */
|
#endif /* RTE_TOOLCHAIN_GCC */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
Loading…
x
Reference in New Issue
Block a user