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

* Re: [Xenomai-core] [PATCH] load librtdm without xeno_rtdm
  2005-12-22 21:01 [Xenomai-core] [PATCH] load librtdm without xeno_rtdm Jan Kiszka
@ 2005-12-28  9:12 ` Philippe Gerum
  0 siblings, 0 replies; 2+ messages in thread
From: Philippe Gerum @ 2005-12-28  9:12 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai-core

Jan Kiszka wrote:
> 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.

Applied, thanks.

> 
> Jan
> 
> 
> ------------------------------------------------------------------------
> 
> 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:
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Xenomai-core mailing list
> Xenomai-core@domain.hid
> https://mail.gna.org/listinfo/xenomai-core


-- 

Philippe.


^ 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.