aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/lib
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-08-27 14:57:51 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-08-27 14:57:51 +0100
commit7e0fe5d8f47a04c8c04317fb08872205fd84f859 (patch)
tree7e3b98669cad748bd51fa9b148f80e5b8a46f4b5 /extras/mini-os/lib
parent86cf63d6f45f02b9f2abd81f80db01cb9b8a5d8b (diff)
downloadxen-7e0fe5d8f47a04c8c04317fb08872205fd84f859.tar.gz
xen-7e0fe5d8f47a04c8c04317fb08872205fd84f859.tar.bz2
xen-7e0fe5d8f47a04c8c04317fb08872205fd84f859.zip
stubdom: add v?errx? and v?warnx? functions
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/lib')
-rw-r--r--extras/mini-os/lib/sys.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/extras/mini-os/lib/sys.c b/extras/mini-os/lib/sys.c
index 21e3b1fec9..47bbbda39e 100644
--- a/extras/mini-os/lib/sys.c
+++ b/extras/mini-os/lib/sys.c
@@ -1035,6 +1035,68 @@ void closelog(void)
syslog_ident = NULL;
}
+void vwarn(const char *format, va_list ap)
+{
+ int the_errno = errno;
+ printk("stubdom: ");
+ if (format) {
+ print(0, format, ap);
+ printk(", ");
+ }
+ printk("%s", strerror(the_errno));
+}
+
+void warn(const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ vwarn(format, ap);
+ va_end(ap);
+}
+
+void verr(int eval, const char *format, va_list ap)
+{
+ vwarn(format, ap);
+ exit(eval);
+}
+
+void err(int eval, const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ verr(eval, format, ap);
+ va_end(ap);
+}
+
+void vwarnx(const char *format, va_list ap)
+{
+ printk("stubdom: ");
+ if (format)
+ print(0, format, ap);
+}
+
+void warnx(const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ vwarnx(format, ap);
+ va_end(ap);
+}
+
+void verrx(int eval, const char *format, va_list ap)
+{
+ vwarnx(format, ap);
+ exit(eval);
+}
+
+void errx(int eval, const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ verrx(eval, format, ap);
+ va_end(ap);
+}
+
int nanosleep(const struct timespec *req, struct timespec *rem)
{
s_time_t start = NOW();