Module: xenomai-forge
Branch: next
Commit: 196973039b573fd9cc480a83d940ef1e68573e7b
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=196973039b573fd9cc480a83d940ef1e68573e7b

Author: Philippe Gerum <r...@xenomai.org>
Date:   Tue Mar 11 09:42:04 2014 +0100

lib/cobalt: unify error reporting

---

 lib/cobalt/internal.h |    2 +-
 lib/cobalt/sem_heap.c |   26 +++++++++++++++-----------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/lib/cobalt/internal.h b/lib/cobalt/internal.h
index 9121d7e..36c7e26 100644
--- a/lib/cobalt/internal.h
+++ b/lib/cobalt/internal.h
@@ -36,7 +36,7 @@
 #include "current.h"
 
 #define report_error(fmt, args...) \
-       __STD(fprintf(stderr, "Xenomai/cobalt: " fmt "\n", ##args))
+       __STD(fprintf(stderr, "Xenomai/cobalt: %s(): " fmt "\n", __func__, 
##args))
 
 #define report_error_cont(fmt, args...) \
        __STD(fprintf(stderr, "                " fmt "\n", ##args))
diff --git a/lib/cobalt/sem_heap.c b/lib/cobalt/sem_heap.c
index b611fde..1146417 100644
--- a/lib/cobalt/sem_heap.c
+++ b/lib/cobalt/sem_heap.c
@@ -49,13 +49,15 @@ void *cobalt_map_heap(struct xnheap_desc *hd)
 
        fd = open(XNHEAP_DEV_NAME, O_RDWR, 0);
        if (fd < 0) {
-               perror("Xenomai: open");
+               report_error("cannot open %s: %s", XNHEAP_DEV_NAME,
+                            strerror(errno));
                return MAP_FAILED;
        }
 
        ret = ioctl(fd, 0, hd->handle);
        if (ret) {
-               perror("Xenomai: ioctl");
+               report_error("failed association with %s: %s",
+                            XNHEAP_DEV_NAME, strerror(errno));
                return MAP_FAILED;
        }
 
@@ -75,8 +77,9 @@ static void *map_sem_heap(unsigned int shared)
        hdesc = shared ? &global_hdesc : &private_hdesc;
        ret = XENOMAI_SYSCALL2(sc_nucleus_heap_info, hdesc, shared);
        if (ret < 0) {
-               errno = -ret;
-               perror("Xenomai: sys_heap_info");
+               report_error("cannot locate %s heap: %s",
+                            shared ? "shared" : "private",
+                            strerror(-ret));
                return MAP_FAILED;
        }
 
@@ -110,12 +113,11 @@ static void unmap_on_fork(void)
 static void cobalt_init_vdso(void)
 {
        struct xnsysinfo sysinfo;
-       int err;
+       int ret;
 
-       err = XENOMAI_SYSCALL1(sc_nucleus_info, &sysinfo);
-       if (err < 0) {
-               errno = -err;
-               perror("Xenomai: sys_info failed");
+       ret = XENOMAI_SYSCALL1(sc_nucleus_info, &sysinfo);
+       if (ret < 0) {
+               report_error("sysinfo failed: %s", strerror(-ret));
                exit(EXIT_FAILURE);
        }
 
@@ -128,7 +130,8 @@ static void cobalt_init_private_heap(void)
 {
        cobalt_sem_heap[PRIVATE] = (unsigned long)map_sem_heap(PRIVATE);
        if (cobalt_sem_heap[PRIVATE] == (unsigned long)MAP_FAILED) {
-               perror("Xenomai: mmap local sem heap");
+               report_error("cannot map private heap: %s",
+                            strerror(errno));
                exit(EXIT_FAILURE);
        }
 }
@@ -140,7 +143,8 @@ static void cobalt_init_rest_once(void)
 
        cobalt_sem_heap[SHARED] = (unsigned long)map_sem_heap(SHARED);
        if (cobalt_sem_heap[SHARED] == (unsigned long)MAP_FAILED) {
-               perror("Xenomai: mmap global sem heap");
+               report_error("cannot map shared heap: %s",
+                            strerror(errno));
                exit(EXIT_FAILURE);
        }
 


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to