Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.18 56 lines 949 B view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#if !defined(__NET_KSFT_H__) 3#define __NET_KSFT_H__ 4 5#include <stdio.h> 6#include <stdlib.h> 7#include <unistd.h> 8 9static inline void ksft_ready(void) 10{ 11 const char msg[7] = "ready\n"; 12 char *env_str; 13 int fd; 14 15 env_str = getenv("KSFT_READY_FD"); 16 if (env_str) { 17 fd = atoi(env_str); 18 if (!fd) { 19 fprintf(stderr, "invalid KSFT_READY_FD = '%s'\n", 20 env_str); 21 return; 22 } 23 } else { 24 fd = STDOUT_FILENO; 25 } 26 27 write(fd, msg, sizeof(msg)); 28 if (fd != STDOUT_FILENO) 29 close(fd); 30} 31 32static inline void ksft_wait(void) 33{ 34 char *env_str; 35 char byte; 36 int fd; 37 38 env_str = getenv("KSFT_WAIT_FD"); 39 if (env_str) { 40 fd = atoi(env_str); 41 if (!fd) { 42 fprintf(stderr, "invalid KSFT_WAIT_FD = '%s'\n", 43 env_str); 44 return; 45 } 46 } else { 47 /* Not running in KSFT env, wait for input from STDIN instead */ 48 fd = STDIN_FILENO; 49 } 50 51 read(fd, &byte, sizeof(byte)); 52 if (fd != STDIN_FILENO) 53 close(fd); 54} 55 56#endif