All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-core] [PATCH] load librtdm without xeno_rtdm
@ 2005-12-22 21:01 Jan Kiszka
  2005-12-28  9:12 ` Philippe Gerum
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kiszka @ 2005-12-22 21:01 UTC (permalink / raw)
  To: xenomai-core


[-- Attachment #1.1: Type: text/plain, Size: 410 bytes --]

Hi,

as suggested in an earlier mail, here is a patch that - as I think -
improves the behaviour of librtdm. It will let applications start even
if the kernel services of RTDM are not available. Instead, -ENODEV or
-EAFNOSUPPORT will be returned in this case when the user tries to open
some device or socket later - just like there is no appropriate driver
loaded, which is actually true!

Please apply.

Jan

[-- Attachment #1.2: librtdm.patch --]
[-- Type: text/x-patch, Size: 1901 bytes --]

Index: src/skins/rtdm/core.c
===================================================================
--- src/skins/rtdm/core.c	(Revision 292)
+++ src/skins/rtdm/core.c	(Arbeitskopie)
@@ -18,6 +18,7 @@
 
 #include <stdarg.h>
 #include <stddef.h>
+#include <errno.h>
 
 #include <xenomai/rtdm/rtdm.h>
 #include <xenomai/rtdm/syscall.h>
@@ -27,19 +28,25 @@
 
 int rt_dev_open(const char *path, int oflag, ...)
 {
-  return XENOMAI_SKINCALL2( __rtdm_muxid,
-                            __rtdm_open,
-                            path,
-                            oflag);
+    if (__rtdm_muxid < 0)
+        return -ENODEV;
+
+    return XENOMAI_SKINCALL2( __rtdm_muxid,
+                              __rtdm_open,
+                              path,
+                              oflag);
 }
 
 int rt_dev_socket(int protocol_family, int socket_type, int protocol)
 {
-  return XENOMAI_SKINCALL3( __rtdm_muxid,
-                            __rtdm_socket,
-                            protocol_family,
-                            socket_type,
-                            protocol);
+    if (__rtdm_muxid < 0)
+        return -EAFNOSUPPORT;
+
+    return XENOMAI_SKINCALL3( __rtdm_muxid,
+                              __rtdm_socket,
+                              protocol_family,
+                              socket_type,
+                              protocol);
 }
 
 int rt_dev_close(int fd)
Index: src/skins/rtdm/init.c
===================================================================
--- src/skins/rtdm/init.c	(Revision 292)
+++ src/skins/rtdm/init.c	(Arbeitskopie)
@@ -53,9 +53,9 @@
 	case -ENOSYS:
 	case -ESRCH:
 
-	    fprintf(stderr,"Xenomai: RTDM skin or CONFIG_XENO_OPT_PERVASIVE disabled.\n");
-	    fprintf(stderr,"(modprobe xeno_rtdm.ko?)\n");
-	    exit(1);
+	    /* we ignore this and fail later when the user tries to open
+	       a device or socket. */
+	    break;
 
 	default:
 

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-12-28  9:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-22 21:01 [Xenomai-core] [PATCH] load librtdm without xeno_rtdm Jan Kiszka
2005-12-28  9:12 ` Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.