* [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.