mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Move xdp_helper to net/lib to make it easier for other selftests to use the helper. Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Link: https://patch.msgid.link/20250425071018.36078-2-minhquangbui99@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
56 lines
949 B
C
56 lines
949 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#if !defined(__NET_KSFT_H__)
|
|
#define __NET_KSFT_H__
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
static inline void ksft_ready(void)
|
|
{
|
|
const char msg[7] = "ready\n";
|
|
char *env_str;
|
|
int fd;
|
|
|
|
env_str = getenv("KSFT_READY_FD");
|
|
if (env_str) {
|
|
fd = atoi(env_str);
|
|
if (!fd) {
|
|
fprintf(stderr, "invalid KSFT_READY_FD = '%s'\n",
|
|
env_str);
|
|
return;
|
|
}
|
|
} else {
|
|
fd = STDOUT_FILENO;
|
|
}
|
|
|
|
write(fd, msg, sizeof(msg));
|
|
if (fd != STDOUT_FILENO)
|
|
close(fd);
|
|
}
|
|
|
|
static inline void ksft_wait(void)
|
|
{
|
|
char *env_str;
|
|
char byte;
|
|
int fd;
|
|
|
|
env_str = getenv("KSFT_WAIT_FD");
|
|
if (env_str) {
|
|
fd = atoi(env_str);
|
|
if (!fd) {
|
|
fprintf(stderr, "invalid KSFT_WAIT_FD = '%s'\n",
|
|
env_str);
|
|
return;
|
|
}
|
|
} else {
|
|
/* Not running in KSFT env, wait for input from STDIN instead */
|
|
fd = STDIN_FILENO;
|
|
}
|
|
|
|
read(fd, &byte, sizeof(byte));
|
|
if (fd != STDIN_FILENO)
|
|
close(fd);
|
|
}
|
|
|
|
#endif
|