All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

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.