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' */
|
/* "abc/def/" -> "" and it never modifies 'path' */
|
||||||
extern char *bb_get_last_path_component_nostrip(const char *path) FAST_FUNC;
|
extern char *bb_get_last_path_component_nostrip(const char *path) FAST_FUNC;
|
||||||
|
|
||||||
int ndelay_on(int fd) FAST_FUNC;
|
void ndelay_on(int fd) FAST_FUNC;
|
||||||
int ndelay_off(int fd) FAST_FUNC;
|
void ndelay_off(int fd) FAST_FUNC;
|
||||||
int close_on_exec_on(int fd) FAST_FUNC;
|
void close_on_exec_on(int fd) FAST_FUNC;
|
||||||
void xdup2(int, int) FAST_FUNC;
|
void xdup2(int, int) FAST_FUNC;
|
||||||
void xmove_fd(int, int) FAST_FUNC;
|
void xmove_fd(int, int) FAST_FUNC;
|
||||||
|
|
||||||
|
@ -25,19 +25,25 @@
|
|||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
|
|
||||||
/* Turn on nonblocking I/O on a fd */
|
/* 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)
|
char* FAST_FUNC strncpy_IFNAMSIZ(char *dst, const char *src)
|
||||||
|
Loading…
Reference in New Issue
Block a user