libbb: make ndelay_no/off a bit more clever. +14 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
dc6cd12569
commit
e9a40e3b91
@ -348,9 +348,9 @@ extern char *bb_get_last_path_component_strip(char *path) FAST_FUNC;
|
||||
/* "abc/def/" -> "" and it never modifies 'path' */
|
||||
extern char *bb_get_last_path_component_nostrip(const char *path) FAST_FUNC;
|
||||
|
||||
int ndelay_on(int fd) FAST_FUNC;
|
||||
int ndelay_off(int fd) FAST_FUNC;
|
||||
int close_on_exec_on(int fd) FAST_FUNC;
|
||||
void ndelay_on(int fd) FAST_FUNC;
|
||||
void ndelay_off(int fd) FAST_FUNC;
|
||||
void close_on_exec_on(int fd) FAST_FUNC;
|
||||
void xdup2(int, int) FAST_FUNC;
|
||||
void xmove_fd(int, int) FAST_FUNC;
|
||||
|
||||
|
@ -25,19 +25,25 @@
|
||||
#include "libbb.h"
|
||||
|
||||
/* Turn on nonblocking I/O on a fd */
|
||||
int FAST_FUNC ndelay_on(int fd)
|
||||
void FAST_FUNC ndelay_on(int fd)
|
||||
{
|
||||
return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK);
|
||||
int flags = fcntl(fd, F_GETFL);
|
||||
if (flags & O_NONBLOCK)
|
||||
return;
|
||||
fcntl(fd, F_SETFL, flags | O_NONBLOCK);
|
||||
}
|
||||
|
||||
int FAST_FUNC ndelay_off(int fd)
|
||||
void FAST_FUNC ndelay_off(int fd)
|
||||
{
|
||||
return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_NONBLOCK);
|
||||
int flags = fcntl(fd, F_GETFL);
|
||||
if (!(flags & O_NONBLOCK))
|
||||
return;
|
||||
fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);
|
||||
}
|
||||
|
||||
int FAST_FUNC close_on_exec_on(int fd)
|
||||
void FAST_FUNC close_on_exec_on(int fd)
|
||||
{
|
||||
return fcntl(fd, F_SETFD, FD_CLOEXEC);
|
||||
fcntl(fd, F_SETFD, FD_CLOEXEC);
|
||||
}
|
||||
|
||||
char* FAST_FUNC strncpy_IFNAMSIZ(char *dst, const char *src)
|
||||
|
Loading…
Reference in New Issue
Block a user