* [Xenomai-core] [patch] problems with nucleus/types.h
@ 2005-10-21 8:26 Jan Kiszka
2005-10-21 17:43 ` Philippe Gerum
0 siblings, 1 reply; 2+ messages in thread
From: Jan Kiszka @ 2005-10-21 8:26 UTC (permalink / raw)
To: xenomai-core
[-- Attachment #1.1: Type: text/plain, Size: 1063 bytes --]
Hi,
after the latest changes in include/nucleus/types.h, I get some warnings
during userspace lib compilation on my box:
In file included from /usr/src/xenomai/include/nucleus/queue.h:24,
from /usr/src/xenomai/include/nucleus/timer.h:24,
from /usr/src/xenomai/include/nucleus/thread.h:24,
from
/usr/src/xenomai/skins/native/lib/../../native/task.h:27,
from /usr/src/xenomai/skins/native/lib/timer.c:21:
/usr/src/xenomai/include/nucleus/types.h: In function
'xnobject_create_name':
/usr/src/xenomai/include/nucleus/types.h:99: warning: implicit
declaration of function 'snprintf'
/usr/src/xenomai/include/nucleus/types.h:99: warning: incompatible
implicit declaration of built-in function 'snprintf'
This is due to the static inline definition of xnobject_create_name in
the mentioned header and missing a snprintf prototype in userspace.
What about the attached patch? It also avoids duplicating code by using
strncpy (or am I overseeing a specific reason for doing it the other way?).
Jan
[-- Attachment #1.2: xnobject-name.patch --]
[-- Type: text/plain, Size: 947 bytes --]
Index: include/nucleus/types.h
===================================================================
--- include/nucleus/types.h (revision 54)
+++ include/nucleus/types.h (working copy)
@@ -76,26 +76,16 @@
#define XNOBJECT_NAME_LEN 32
-static inline void xnobject_copy_name (char *dst,
- const char *src)
-{
- if (src)
- {
- const char *rp = src;
- char *wp = dst;
- do
- *wp++ = *rp;
- while (*rp && rp++ - src < XNOBJECT_NAME_LEN);
- }
- else
- *dst = '\0';
-}
+#define xnobject_copy_name(dst, src) \
+do { \
+ if (src) \
+ strncpy(dst, src, XNOBJECT_NAME_LEN); \
+ else \
+ *dst = '\0'; \
+} while (0)
-static inline int xnobject_create_name(
- char *dst, size_t n, void *obj)
-{
- return snprintf(dst, n, "%p", obj);
-}
+#define xnobject_create_name(dst, n, obj) \
+ snprintf(dst, n, "%p", obj)
#define minval(a,b) ((a) < (b) ? (a) : (b))
#define maxval(a,b) ((a) > (b) ? (a) : (b))
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [Xenomai-core] [patch] problems with nucleus/types.h
2005-10-21 8:26 [Xenomai-core] [patch] problems with nucleus/types.h Jan Kiszka
@ 2005-10-21 17:43 ` Philippe Gerum
0 siblings, 0 replies; 2+ messages in thread
From: Philippe Gerum @ 2005-10-21 17:43 UTC (permalink / raw)
To: Jan Kiszka; +Cc: xenomai-core
Jan Kiszka wrote:
> Hi,
>
> after the latest changes in include/nucleus/types.h, I get some warnings
> during userspace lib compilation on my box:
>
> In file included from /usr/src/xenomai/include/nucleus/queue.h:24,
> from /usr/src/xenomai/include/nucleus/timer.h:24,
> from /usr/src/xenomai/include/nucleus/thread.h:24,
> from
> /usr/src/xenomai/skins/native/lib/../../native/task.h:27,
> from /usr/src/xenomai/skins/native/lib/timer.c:21:
> /usr/src/xenomai/include/nucleus/types.h: In function
> 'xnobject_create_name':
> /usr/src/xenomai/include/nucleus/types.h:99: warning: implicit
> declaration of function 'snprintf'
> /usr/src/xenomai/include/nucleus/types.h:99: warning: incompatible
> implicit declaration of built-in function 'snprintf'
>
> This is due to the static inline definition of xnobject_create_name in
> the mentioned header and missing a snprintf prototype in userspace.
>
> What about the attached patch? It also avoids duplicating code by using
> strncpy (or am I overseeing a specific reason for doing it the other way?).
>
Applied, since types.h must be usable with as little deps as possible in order
to grab types and definitions. Thanks.
> Jan
>
>
> ------------------------------------------------------------------------
>
> Index: include/nucleus/types.h
> ===================================================================
> --- include/nucleus/types.h (revision 54)
> +++ include/nucleus/types.h (working copy)
> @@ -76,26 +76,16 @@
>
> #define XNOBJECT_NAME_LEN 32
>
> -static inline void xnobject_copy_name (char *dst,
> - const char *src)
> -{
> - if (src)
> - {
> - const char *rp = src;
> - char *wp = dst;
> - do
> - *wp++ = *rp;
> - while (*rp && rp++ - src < XNOBJECT_NAME_LEN);
> - }
> - else
> - *dst = '\0';
> -}
> +#define xnobject_copy_name(dst, src) \
> +do { \
> + if (src) \
> + strncpy(dst, src, XNOBJECT_NAME_LEN); \
> + else \
> + *dst = '\0'; \
> +} while (0)
>
> -static inline int xnobject_create_name(
> - char *dst, size_t n, void *obj)
> -{
> - return snprintf(dst, n, "%p", obj);
> -}
> +#define xnobject_create_name(dst, n, obj) \
> + snprintf(dst, n, "%p", obj)
>
> #define minval(a,b) ((a) < (b) ? (a) : (b))
> #define maxval(a,b) ((a) > (b) ? (a) : (b))
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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-10-21 17:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-21 8:26 [Xenomai-core] [patch] problems with nucleus/types.h Jan Kiszka
2005-10-21 17:43 ` 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.