From 31cf8e00563a399768db0edda94ce1358e386dfa Mon Sep 17 00:00:00 2001 From: Erik Andersen Date: Mon, 7 Feb 2000 20:31:19 +0000 Subject: device_open is common code -- moved into utility.c -Erik --- utility.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'utility.c') diff --git a/utility.c b/utility.c index a27aaa2ae..6d7fa955b 100644 --- a/utility.c +++ b/utility.c @@ -1121,6 +1121,28 @@ extern long getNum (const char *cp) #endif /* BB_DD || BB_TAIL */ +#if defined BB_INIT || defined BB_SYSLOGD +/* try to open up the specified device */ +extern int device_open(char *device, int mode) +{ + int m, f, fd = -1; + + m = mode | O_NONBLOCK; + + /* Retry up to 5 times */ + for (f = 0; f < 5; f++) + if ((fd = open(device, m, 0600)) >= 0) + break; + if (fd < 0) + return fd; + /* Reset original flags. */ + if (m != mode) + fcntl(fd, F_SETFL, mode); + return fd; +} +#endif /* BB_INIT BB_SYSLOGD */ + + #if defined BB_INIT || defined BB_HALT || defined BB_REBOOT #if ! defined BB_FEATURE_USE_PROCFS -- cgit v1.2.3