Module: xenomai-forge
Branch: next
Commit: af73840304681802ce09e9551cf7dfc423354068
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=af73840304681802ce09e9551cf7dfc423354068

Author: Philippe Gerum <r...@xenomai.org>
Date:   Sat Jun 14 11:33:23 2014 +0200

doc: introduce dual kernel service tags

---

 doc/doxygen/manual-common.conf.in |    4 +-
 include/cobalt/kernel/timer.h     |    2 +-
 kernel/cobalt/apc.c               |    4 +-
 kernel/cobalt/bufd.c              |   32 ++++++--------
 kernel/cobalt/clock.c             |    8 ++--
 kernel/cobalt/heap.c              |   21 +++------
 kernel/cobalt/init.c              |   34 ++++++++++++++-
 kernel/cobalt/intr.c              |   18 +++-----
 kernel/cobalt/map.c               |   16 +++----
 kernel/cobalt/registry.c          |   11 +++--
 kernel/cobalt/sched.c             |    4 +-
 kernel/cobalt/select.c            |   12 +++---
 kernel/cobalt/shadow.c            |   18 ++++----
 kernel/cobalt/synch.c             |   86 +++++++++----------------------------
 kernel/cobalt/thread.c            |   31 +++++++------
 kernel/cobalt/timer.c             |   37 +++++++---------
 kernel/cobalt/vfile.c             |   27 ++++++------
 17 files changed, 161 insertions(+), 204 deletions(-)

diff --git a/doc/doxygen/manual-common.conf.in 
b/doc/doxygen/manual-common.conf.in
index 370d867..c99fb62 100644
--- a/doc/doxygen/manual-common.conf.in
+++ b/doc/doxygen/manual-common.conf.in
@@ -130,7 +130,8 @@ TAB_SIZE               = 8
 # will result in a user-defined paragraph with heading "Side Effects:". 
 # You can put \n's in the value part of an alias to insert newlines.
 
-ALIASES                = 
+ALIASES                = \
+                      "coretags{1}=@par Tags\n@ref core-tags \"\1\""
 
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
sources 
 # only. Doxygen will then generate output that is more tailored for C. 
@@ -657,6 +658,7 @@ INCLUDE_FILE_PATTERNS  =
 # omitted =1 is assumed.
 
 PREDEFINED = DOXYGEN_CPP               \
+       CONFIG_SMP                      \
         "EXPORT_SYMBOL_GPL(symbol)=//" \
        "COBALT_IMPL(T,I,A)=T I A"      \
        "COBALT_DECL(T,P)=T P"
diff --git a/include/cobalt/kernel/timer.h b/include/cobalt/kernel/timer.h
index 16e3d03..3e35960 100644
--- a/include/cobalt/kernel/timer.h
+++ b/include/cobalt/kernel/timer.h
@@ -392,7 +392,7 @@ void xntimer_destroy(struct xntimer *timer);
  * XN_INFINITE is returned if @a timer is currently disabled or
  * one shot.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted, atomic-entry}
  */
 static inline xnticks_t xntimer_interval(struct xntimer *timer)
 {
diff --git a/kernel/cobalt/apc.c b/kernel/cobalt/apc.c
index 04816ef..c41853d 100644
--- a/kernel/cobalt/apc.c
+++ b/kernel/cobalt/apc.c
@@ -108,7 +108,7 @@ void apc_dispatch(unsigned int virq, void *arg)
  *
  * - -EBUSY is returned if no more APC slots are available.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 int xnapc_alloc(const char *name,
                void (*handler)(void *cookie), void *cookie)
@@ -148,7 +148,7 @@ EXPORT_SYMBOL_GPL(xnapc_alloc);
  * @param apc The APC id. to release, as returned by a successful call
  * to the xnapc_alloc() service.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 void xnapc_free(int apc)
 {
diff --git a/kernel/cobalt/bufd.c b/kernel/cobalt/bufd.c
index 1a8b71f..d3a4f9b 100644
--- a/kernel/cobalt/bufd.c
+++ b/kernel/cobalt/bufd.c
@@ -162,7 +162,7 @@
  *
  * @param len The length of the kernel buffer starting at @a ptr.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 
 /**
@@ -180,9 +180,8 @@
  *
  * @param len The length of the kernel buffer starting at @a ptr.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 void xnbufd_map_kmem(struct xnbufd *bufd, void *ptr, size_t len)
 {
        bufd->b_ptr = ptr;
@@ -210,7 +209,7 @@ EXPORT_SYMBOL_GPL(xnbufd_map_kmem);
  *
  * @param len The length of the user buffer starting at @a ptr.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 
 /**
@@ -230,7 +229,7 @@ EXPORT_SYMBOL_GPL(xnbufd_map_kmem);
  *
  * @param len The length of the user buffer starting at @a ptr.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 
 void xnbufd_map_umem(struct xnbufd *bufd, void __user *ptr, size_t len)
@@ -284,7 +283,7 @@ EXPORT_SYMBOL_GPL(xnbufd_map_umem);
  *   an invalid context. This error is only returned when the debug
  *   mode is disabled; otherwise a panic assertion is raised.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  *
  * @note Calling this routine while holding the nklock and/or running
  * with interrupts disabled is invalid, and doing so will trigger a
@@ -295,7 +294,6 @@ EXPORT_SYMBOL_GPL(xnbufd_map_umem);
  * xnbufd_copy_to_kmem() may only be called from a preemptible section
  * (Linux-wise).
  */
-
 ssize_t xnbufd_copy_to_kmem(void *to, struct xnbufd *bufd, size_t len)
 {
        caddr_t from;
@@ -392,7 +390,7 @@ EXPORT_SYMBOL_GPL(xnbufd_copy_to_kmem);
  * - -ENOMEM is returned when no memory is available from the nucleus
  *    heap to allocate the carry over buffer.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  *
  * @note Calling this routine while holding the nklock and/or running
  * with interrupts disabled is invalid, and doing so will trigger a
@@ -403,7 +401,6 @@ EXPORT_SYMBOL_GPL(xnbufd_copy_to_kmem);
  * xnbufd_copy_to_kmem() may only be called from a preemptible section
  * (Linux-wise).
  */
-
 ssize_t xnbufd_copy_from_kmem(struct xnbufd *bufd, void *from, size_t len)
 {
        caddr_t to;
@@ -488,13 +485,12 @@ EXPORT_SYMBOL_GPL(xnbufd_copy_from_kmem);
  * @return The number of bytes read so far from the memory area
  * covered by @a ubufd.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  *
  * @note Calling this routine while holding the nklock and/or running
  * with interrupts disabled is invalid, and doing so will trigger a
  * debug assertion.
  */
-
 ssize_t xnbufd_unmap_uread(struct xnbufd *bufd)
 {
        preemptible_only();
@@ -525,13 +521,12 @@ EXPORT_SYMBOL_GPL(xnbufd_unmap_uread);
  * @return The number of bytes written so far to the memory area
  * covered by @a ubufd.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  *
  * @note Calling this routine while holding the nklock and/or running
  * with interrupts disabled is invalid, and doing so will trigger a
  * debug assertion.
  */
-
 ssize_t xnbufd_unmap_uwrite(struct xnbufd *bufd)
 {
        ssize_t ret = 0;
@@ -574,7 +569,7 @@ EXPORT_SYMBOL_GPL(xnbufd_unmap_uwrite);
  *
  * @param bufd The address of the buffer descriptor to reset.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 
 /**
@@ -595,9 +590,8 @@ EXPORT_SYMBOL_GPL(xnbufd_unmap_uwrite);
  *
  * @param bufd The address of the buffer descriptor to invalidate.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 void xnbufd_invalidate(struct xnbufd *bufd)
 {
 #if XENO_DEBUG(NUCLEUS)
@@ -624,9 +618,8 @@ EXPORT_SYMBOL_GPL(xnbufd_invalidate);
  * @return The number of bytes read so far from the memory area
  * covered by @a ubufd.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{task-unrestricted}
  */
-
 ssize_t xnbufd_unmap_kread(struct xnbufd *bufd)
 {
 #if XENO_DEBUG(NUCLEUS)
@@ -648,9 +641,8 @@ EXPORT_SYMBOL_GPL(xnbufd_unmap_kread);
  * @return The number of bytes written so far to the memory area
  * covered by @a ubufd.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{task-unrestricted}
  */
-
 ssize_t xnbufd_unmap_kwrite(struct xnbufd *bufd)
 {
 #if XENO_DEBUG(NUCLEUS)
diff --git a/kernel/cobalt/clock.c b/kernel/cobalt/clock.c
index e0ea7d8..04faba2 100644
--- a/kernel/cobalt/clock.c
+++ b/kernel/cobalt/clock.c
@@ -298,7 +298,7 @@ static void adjust_clock_timers(struct xnclock *clock, 
xnsticks_t delta)
  *
  * @note This routine must be entered nklock locked, interrupts off.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  *
  * @note Xenomai tracks the system time in @a nkclock, as a
  * monotonously increasing count of ticks since the epoch. The epoch
@@ -475,7 +475,7 @@ static inline void cleanup_clock_proc(struct xnclock 
*clock) { }
  *
  * @param clock The new clock to register.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnclock_register(struct xnclock *clock)
 {
@@ -516,7 +516,7 @@ EXPORT_SYMBOL_GPL(xnclock_register);
  *
  * @param clock The clock to deregister.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 void xnclock_deregister(struct xnclock *clock)
 {
@@ -546,7 +546,7 @@ EXPORT_SYMBOL_GPL(xnclock_deregister);
  *
  * @param clock The clock for which a new event was received.
  *
- * @remark Tags: primary-only, isr-only, atomic-entry.
+ * @coretags{isr-only, atomic-entry}
  *
  * @note The current CPU must be part of the real-time affinity set,
  * otherwise weird things may happen.
diff --git a/kernel/cobalt/heap.c b/kernel/cobalt/heap.c
index ce6c596..9b104d3 100644
--- a/kernel/cobalt/heap.c
+++ b/kernel/cobalt/heap.c
@@ -256,9 +256,8 @@ static void init_extent(struct xnheap *heap, struct 
xnextent *extent)
  *
  * - -EINVAL is returned whenever a parameter is invalid.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
-
 int xnheap_init(struct xnheap *heap,
                void *heapaddr, unsigned long heapsize, unsigned long pagesize)
 {
@@ -355,9 +354,8 @@ EXPORT_SYMBOL_GPL(xnheap_init);
  * can be a format string, in which case succeeding parameters will be used
  * to resolve the final label.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
-
 void xnheap_set_label(struct xnheap *heap, const char *label, ...)
 {
        va_list args;
@@ -388,9 +386,8 @@ EXPORT_SYMBOL_GPL(xnheap_set_label);
  * @param cookie If @a flushfn is non-NULL, @a cookie is an opaque
  * pointer which will be passed unmodified to @a flushfn.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
-
 void xnheap_destroy(struct xnheap *heap,
                    void (*flushfn)(struct xnheap *heap,
                                    void *extaddr,
@@ -545,9 +542,8 @@ splitpage:
  * @return The address of the allocated region upon success, or NULL
  * if no memory is available from the specified heap.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 void *xnheap_alloc(struct xnheap *heap, unsigned long size)
 {
        unsigned long pagenum, bsize;
@@ -675,9 +671,8 @@ EXPORT_SYMBOL_GPL(xnheap_alloc);
  * the block is not a valid region of the specified heap. Additional
  * return codes can also be defined locally by the @a ckfn routine.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 int xnheap_test_and_free(struct xnheap *heap, void *block, int (*ckfn) (void 
*block))
 {
        caddr_t freepage, lastpage, nextpage, tailpage, freeptr, *tailptr;
@@ -878,9 +873,8 @@ EXPORT_SYMBOL_GPL(xnheap_test_and_free);
  * - -EINVAL is returned whenever the memory address does not
  * represent a valid block.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 int xnheap_free(struct xnheap *heap, void *block)
 {
        return xnheap_test_and_free(heap, block, NULL);
@@ -904,9 +898,8 @@ EXPORT_SYMBOL_GPL(xnheap_free);
  * @return 0 is returned upon success, or -EINVAL is returned if
  * @a extsize differs from the initial extent's size.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 int xnheap_extend(struct xnheap *heap, void *extaddr, unsigned long extsize)
 {
        struct xnextent *extent = extaddr;
diff --git a/kernel/cobalt/init.c b/kernel/cobalt/init.c
index b4e60dd..a3b19e4 100644
--- a/kernel/cobalt/init.c
+++ b/kernel/cobalt/init.c
@@ -43,7 +43,6 @@
  * such as handling interrupts, and scheduling real-time threads. The
  * nucleus has higher priority over all the native kernel activities.
  */
-
 MODULE_DESCRIPTION("Xenomai nucleus");
 MODULE_AUTHOR("r...@xenomai.org");
 MODULE_LICENSE("GPL");
@@ -467,3 +466,36 @@ fail:
        return ret;
 }
 device_initcall(xenomai_init);
+
+/**
+ * @ingroup core
+ * @page dual-kernel-core-tags Dual kernel service tags
+ * @anchor core-tags
+ *
+ * Xenomai core services in dual kernel configuration may be
+ * restricted to particular calling contexts, or entail specific
+ * side-effects. To describe this information, each service documented
+ * by this manual bears a set of tags when applicable.
+ *
+ * The table below matches the tags used throughout the documentation
+ * with the description of their meaning for the caller.
+ *
+ * @par
+ * <b>Context tags</b>
+ * <TABLE>
+ * <TR><TH>Tag</TH> <TH>Context on entry</TH></TR>
+ * <TR><TD>secondary-only</TD> <TD>Must be called from a regular Linux 
task</TD></TR>
+ * <TR><TD>primary-only</TD>   <TD>Must be called from a hard real-time 
task</TD></TR>
+ * <TR><TD>isr-only</TD>       <TD>Must be called from a hard real-time IRQ 
handler</TD></TR>
+ * <TR><TD>task-unrestricted</TD>      <TD>May be called from a regular Linux 
or hard real-time task context indifferently</TD></TR>
+ * <TR><TD>unrestricted</TD>   <TD>May be called from any context previously 
described</TD></TR>
+ * <TR><TD>atomic-entry</TD>   <TD>Caller must currently hold the Xenomai 
nucleus big lock</TD></TR>
+ * </TABLE>
+ *
+ * @par
+ * <b>Possible side-effects</b>
+ * <TABLE>
+ * <TR><TH>Tag</TH> <TH>Description</TH></TR>
+ * <TR><TD>might-switch</TD>   <TD>A thread context switch may happen in the 
Xenomai core</TD></TR>
+ * </TABLE>
+ */
diff --git a/kernel/cobalt/intr.c b/kernel/cobalt/intr.c
index c8f34af..0118346 100644
--- a/kernel/cobalt/intr.c
+++ b/kernel/cobalt/intr.c
@@ -603,9 +603,8 @@ static void clear_irqstats(struct xnintr *intr)
  * @return 0 is returned on success. Otherwise, -EINVAL is returned if
  * @a irq is not a valid interrupt number.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
-
 int xnintr_init(struct xnintr *intr, const char *name,
                unsigned int irq, xnisr_t isr, xniack_t iack,
                int flags)
@@ -644,7 +643,7 @@ EXPORT_SYMBOL_GPL(xnintr_init);
  * @param intr The descriptor address of the interrupt object to
  * destroy.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 void xnintr_destroy(struct xnintr *intr)
 {
@@ -680,7 +679,7 @@ EXPORT_SYMBOL_GPL(xnintr_destroy);
  * @note The caller <b>must not</b> hold nklock when invoking this service,
  * this would cause deadlocks.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  *
  * @note Attaching an interrupt resets the tracked number of receipts
  * to zero.
@@ -734,7 +733,7 @@ EXPORT_SYMBOL_GPL(xnintr_attach);
  * @note The caller <b>must not</b> hold nklock when invoking this
  * service, this would cause deadlocks.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 void xnintr_detach(struct xnintr *intr)
 {
@@ -762,9 +761,8 @@ EXPORT_SYMBOL_GPL(xnintr_detach);
  * @param intr The descriptor address of the interrupt object to
  * enable.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
-
 void xnintr_enable(struct xnintr *intr)
 {
        secondary_mode_only();
@@ -784,9 +782,8 @@ EXPORT_SYMBOL_GPL(xnintr_enable);
  * @param intr The descriptor address of the interrupt object to
  * disable.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
-
 void xnintr_disable(struct xnintr *intr)
 {
        secondary_mode_only();
@@ -810,9 +807,8 @@ EXPORT_SYMBOL_GPL(xnintr_disable);
  * @note Depending on architectures, setting more than one bit in @a
  * cpumask could be meaningless.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
-
 void xnintr_affinity(struct xnintr *intr, cpumask_t cpumask)
 {
        secondary_mode_only();
diff --git a/kernel/cobalt/map.c b/kernel/cobalt/map.c
index 95914a6..03a45dc 100644
--- a/kernel/cobalt/map.c
+++ b/kernel/cobalt/map.c
@@ -77,9 +77,8 @@
  * @return the address of the new map is returned on success;
  * otherwise, NULL is returned if @a nkeys is invalid.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
-
 struct xnmap *xnmap_create(int nkeys, int reserve, int offset)
 {
        struct xnmap *map;
@@ -115,9 +114,8 @@ EXPORT_SYMBOL_GPL(xnmap_create);
  *
  * @param map The address of the map to delete.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
-
 void xnmap_delete(struct xnmap *map)
 {
        xnfree(map);
@@ -149,9 +147,8 @@ EXPORT_SYMBOL_GPL(xnmap_delete);
  *
  * - -ENOSPC when no more free key is available.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 int xnmap_enter(struct xnmap *map, int key, void *objaddr)
 {
        int hi, lo, ofkey = key - map->offset;
@@ -209,9 +206,8 @@ EXPORT_SYMBOL_GPL(xnmap_enter);
  *
  * - -ESRCH is returned if @a key is invalid.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 int xnmap_remove(struct xnmap *map, int key)
 {
        int ofkey = key - map->offset, hi, lo;
@@ -247,7 +243,7 @@ EXPORT_SYMBOL_GPL(xnmap_remove);
  * otherwise NULL is returned when @a key is invalid or no object is
  * currently indexed on it.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 
 /**
@@ -265,7 +261,7 @@ EXPORT_SYMBOL_GPL(xnmap_remove);
  * otherwise NULL is returned when no object is currently indexed on
  * @a key.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 
 /** @} */
diff --git a/kernel/cobalt/registry.c b/kernel/cobalt/registry.c
index acb9306..dc196dd 100644
--- a/kernel/cobalt/registry.c
+++ b/kernel/cobalt/registry.c
@@ -618,7 +618,7 @@ static inline int registry_wakeup_sleepers(const char *key)
  *
  * - -EEXIST is returned if the @a key is already in use.
  *
- * @remark Tags: might-switch.
+ * @coretags{unrestricted, might-switch, atomic-entry}
  */
 int xnregistry_enter(const char *key, void *objaddr,
                     xnhandle_t *phandle, struct xnpnode *pnode)
@@ -729,7 +729,7 @@ EXPORT_SYMBOL_GPL(xnregistry_enter);
  * - -ETIMEDOUT is returned if the object cannot be retrieved within
  * the specified amount of time.
  *
- * @remark Tags: primary-only, might-switch.
+ * @coretags{primary-only, might-switch}
  */
 int xnregistry_bind(const char *key, xnticks_t timeout, int timeout_mode,
                    xnhandle_t *phandle)
@@ -799,9 +799,8 @@ EXPORT_SYMBOL_GPL(xnregistry_bind);
  * - -ESRCH is returned if @a handle does not reference a registered
  * object.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
-
 int xnregistry_remove(xnhandle_t handle)
 {
        struct xnobject *object;
@@ -851,7 +850,7 @@ EXPORT_SYMBOL_GPL(xnregistry_remove);
 /**
  * Turn a named object into an anonymous object
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 int xnregistry_unlink(const char *key)
 {
@@ -914,7 +913,7 @@ unlock_and_exit:
  * on success. Otherwise, NULL is returned if @a handle does not
  * reference a registered object.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 
 /** @} */
diff --git a/kernel/cobalt/sched.c b/kernel/cobalt/sched.c
index b3c0935..d89e0e8 100644
--- a/kernel/cobalt/sched.c
+++ b/kernel/cobalt/sched.c
@@ -96,7 +96,7 @@ MODULE_PARM_DESC(watchdog_timeout, "Watchdog timeout (s)");
  * software lockups. It kills any offending thread which is found to
  * monopolize the CPU so as to starve the Linux kernel for too long.
  *
- * @remark Tags: primary-only, isr-only, atomic-entry.
+ * @coretags{isr-only, atomic-entry}
  */
 static void watchdog_handler(struct xntimer *timer)
 {
@@ -734,7 +734,7 @@ static inline void switch_context(struct xnsched *sched,
  * @return Non-zero is returned if a context switch actually happened,
  * otherwise zero if the current thread was left running.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 static inline int test_resched(struct xnsched *sched)
 {
diff --git a/kernel/cobalt/select.c b/kernel/cobalt/select.c
index 9cce93c..036d25c 100644
--- a/kernel/cobalt/select.c
+++ b/kernel/cobalt/select.c
@@ -63,7 +63,7 @@ static int deletion_apc;
  *
  * @param select_block pointer to the xnselect structure to be initialized
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 void xnselect_init(struct xnselect *select_block)
 {
@@ -105,7 +105,7 @@ static inline int xnselect_wakeup(struct xnselector 
*selector)
  * @retval -EINVAL if @a type or @a index is invalid;
  * @retval 0 otherwise.
  *
- * @remark Tags: might-switch, atomic-entry.
+ * @coretags{task-unrestricted, might-switch, atomic-entry}
  */
 int xnselect_bind(struct xnselect *select_block,
                  struct xnselect_binding *binding,
@@ -172,7 +172,7 @@ EXPORT_SYMBOL_GPL(__xnselect_signal);
  * @param select_block pointer to the @a xnselect structure associated
  * with a file descriptor
  *
- * @remark Tags: might-switch.
+ * @coretags{task-unrestricted, might-switch}
  */
 void xnselect_destroy(struct xnselect *select_block)
 {
@@ -280,7 +280,7 @@ static unsigned fd_set_popcount(fd_set *set, unsigned n)
  *
  * @retval 0
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 int xnselector_init(struct xnselector *selector)
 {
@@ -320,7 +320,7 @@ EXPORT_SYMBOL_GPL(xnselector_init);
  * @retval 0 in case of timeout.
  * @retval the number of file descriptors having received an event.
  *
- * @remark Tags: might-switch.
+ * @coretags{primary-only, might-switch}
  */
 int xnselect(struct xnselector *selector,
             fd_set *out_fds[XNSELECT_MAX_TYPES],
@@ -394,7 +394,7 @@ EXPORT_SYMBOL_GPL(xnselect);
  *
  * @param selector the selector block to be destroyed
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 void xnselector_destroy(struct xnselector *selector)
 {
diff --git a/kernel/cobalt/shadow.c b/kernel/cobalt/shadow.c
index 23c322b..e234924 100644
--- a/kernel/cobalt/shadow.c
+++ b/kernel/cobalt/shadow.c
@@ -449,7 +449,7 @@ void ipipe_migration_hook(struct task_struct *p) /* hw IRQs 
off */
  * domain to Xenomai. The shadow will resume in the Xenomai domain as
  * returning from schedule().
  *
- * @remark Tags: secondary-only, might-switch.
+ * @coretags{secondary-only, might-switch}
  */
 int xnshadow_harden(void)
 {
@@ -522,7 +522,7 @@ EXPORT_SYMBOL_GPL(xnshadow_harden);
  *
  * @param reason The reason to report along with the SIGDEBUG signal.
  *
- * @remark Tags: primary-only, might-switch.
+ * @coretags{primary-only, might-switch}
  *
  * @note "current" is valid here since the shadow runs with the
  * properties of the Linux task.
@@ -878,7 +878,7 @@ static unsigned long mayday_unmapped_area(struct file *file,
  * - -EBUSY is returned if either the current Linux task or the
  * associated shadow thread is already involved in a shadow mapping.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnshadow_map_user(struct xnthread *thread,
                      unsigned long __user *u_window_offset)
@@ -1020,7 +1020,7 @@ static inline void wakeup_parent(struct completion *done)
  * - -EBUSY is returned if either the current Linux task or the
  * associated shadow thread is already involved in a shadow mapping.
  *
- * @remark Tags: secondary-only, might-switch.
+ * @coretags{secondary-only, might-switch}
  */
 int xnshadow_map_kernel(struct xnthread *thread, struct completion *done)
 {
@@ -1686,7 +1686,7 @@ EXPORT_SYMBOL_GPL(xnshadow_send_sig);
  *   personality. This handler is passed a pointer to the per-process
  *   data received earlier from the ops->attach_process() handler.
  *
- * @remark Tags: none.
+ * @coretags{secondary-only}
  */
 int xnshadow_register_personality(struct xnpersonality *personality)
 {
@@ -1714,7 +1714,7 @@ EXPORT_SYMBOL_GPL(xnshadow_register_personality);
 /*
  * @brief Unregister an interface personality.
  *
- * @remark Tags: none.
+ * @coretags{secondary-only}
  */
 int xnshadow_unregister_personality(int muxid)
 {
@@ -1753,7 +1753,7 @@ EXPORT_SYMBOL_GPL(xnshadow_unregister_personality);
  * @return the per-process data if the current context is a user-space
  * process; @return NULL otherwise.
  *
- * @remark Tags: atomic-entry.
+ * @coretags{task-unrestricted, atomic-entry}
  */
 void *xnshadow_get_context(unsigned int muxid)
 {
@@ -1775,7 +1775,7 @@ EXPORT_SYMBOL_GPL(xnshadow_get_context);
  * save this handle for unstacking @a muxid when applicable via a call
  * to xnshadow_pop_personality().
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 struct xnpersonality *
 xnshadow_push_personality(int muxid)
@@ -1817,7 +1817,7 @@ EXPORT_SYMBOL_GPL(xnshadow_push_personality);
  * @param prev the previous personality which was returned by the
  * latest call to xnshadow_push_personality() for the current thread.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 void xnshadow_pop_personality(struct xnpersonality *prev)
 {
diff --git a/kernel/cobalt/synch.c b/kernel/cobalt/synch.c
index 565ffc6..eee10c7 100644
--- a/kernel/cobalt/synch.c
+++ b/kernel/cobalt/synch.c
@@ -75,7 +75,7 @@
  * valid fast-lock address is required if XNSYNCH_OWNER is set in @a
  * flags.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 void xnsynch_init(struct xnsynch *synch, int flags, atomic_long_t *fastlock)
 {
@@ -129,7 +129,7 @@ EXPORT_SYMBOL_GPL(xnsynch_init);
  * caller, for detecting respectively: object deletion, timeout or
  * signal/unblock conditions which might have happened while waiting.
  *
- * @remark Tags: might-switch.
+ * @coretags{primary-only, might-switch}
  */
 int xnsynch_sleep_on(struct xnsynch *synch, xnticks_t timeout,
                     xntmode_t timeout_mode)
@@ -178,7 +178,7 @@ EXPORT_SYMBOL_GPL(xnsynch_sleep_on);
  *
  * @return The descriptor address of the unblocked thread.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 struct xnthread *xnsynch_wakeup_one_sleeper(struct xnsynch *synch)
 {
@@ -254,7 +254,7 @@ EXPORT_SYMBOL_GPL(xnsynch_wakeup_many_sleepers);
  * @param sleeper The thread to unblock which MUST be currently linked
  * to the synchronization object's pending queue (i.e. synch->pendq).
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 void xnsynch_wakeup_this_sleeper(struct xnsynch *synch, struct xnthread 
*sleeper)
 {
@@ -330,7 +330,7 @@ static void xnsynch_renice_thread(struct xnthread *thread,
  * caller, for detecting respectively: object deletion, timeout or
  * signal/unblock conditions which might have happened while waiting.
  *
- * @remark Tags: might-switch.
+ * @coretags{primary-only, might-switch}
  */
 int xnsynch_acquire(struct xnsynch *synch, xnticks_t timeout,
                    xntmode_t timeout_mode)
@@ -474,22 +474,6 @@ out:
 }
 EXPORT_SYMBOL_GPL(xnsynch_acquire);
 
-/**
- * @internal
- * @fn void clear_boost(struct xnsynch *synch, struct xnthread *owner);
- * @brief Clear the priority boost.
- *
- * This service is called internally whenever a synchronization object
- * is not claimed anymore by sleepers to reset the object owner's
- * priority to its initial level.
- *
- * @param synch The descriptor address of the synchronization object.
- *
- * @param owner The descriptor address of the thread which
- * currently owns the synchronization object.
- *
- * @remark Tags: atomic-entry.
- */
 static void clear_boost(struct xnsynch *synch, struct xnthread *owner)
 {
        struct xnthread *target;
@@ -586,7 +570,7 @@ static struct xnthread *transfer_ownership(struct xnsynch 
*synch,
  * - The synchronization object ownership is transfered to the
  * unblocked thread.
  *
- * @remark Tags: none.
+ * @coretags{primary-only, might-switch}
  */
 struct xnthread *xnsynch_release(struct xnsynch *synch,
                                 struct xnthread *thread)
@@ -615,24 +599,15 @@ struct xnthread *xnsynch_release(struct xnsynch *synch,
 }
 EXPORT_SYMBOL_GPL(xnsynch_release);
 
-/**
- * @internal
- * @fn void xnsynch_requeue_sleeper(struct xnthread *thread);
- * @brief Change a sleeper's priority.
- *
- * This service is used by the PIP code to update the pending priority
- * of a sleeping thread.
- *
- * @param thread The descriptor address of the affected thread.
- *
- * @remark Tags: atomic-entry.
- */
-
 void xnsynch_requeue_sleeper(struct xnthread *thread)
 {
        struct xnsynch *synch = thread->wchan;
        struct xnthread *owner;
 
+       /*
+        * Update the position of a thread waiting for a lock w/ PIP
+        * enabled.
+        */
        if ((synch->status & XNSYNCH_PRIO) == 0)
                return;
 
@@ -687,7 +662,7 @@ EXPORT_SYMBOL_GPL(xnsynch_requeue_sleeper);
  *
  * @return The descriptor address of the unblocked thread.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
 struct xnthread *xnsynch_peek_pendq(struct xnsynch *synch)
 {
@@ -746,9 +721,8 @@ EXPORT_SYMBOL_GPL(xnsynch_peek_pendq);
  *
  * - The synchronization object is no more owned by any thread.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted}
  */
-
 int xnsynch_flush(struct xnsynch *synch, int reason)
 {
        struct xnthread *sleeper, *tmp;
@@ -780,24 +754,15 @@ int xnsynch_flush(struct xnsynch *synch, int reason)
 }
 EXPORT_SYMBOL_GPL(xnsynch_flush);
 
-/**
- * @internal
- * @fn void xnsynch_forget_sleeper(struct xnthread *thread);
- * @brief Abort a wait for a resource.
- *
- * Performs all the necessary housekeeping chores to stop a thread
- * from waiting on a given synchronization object.
- *
- * @param thread The descriptor address of the affected thread.
- *
- * @remark Tags: atomic-entry.
- */
-
 void xnsynch_forget_sleeper(struct xnthread *thread)
 {
        struct xnsynch *synch = thread->wchan, *nsynch;
        struct xnthread *owner, *target;
 
+       /*
+        * Do all the necessary housekeeping chores to stop a thread
+        * from waiting on a given synchronization object.
+        */
        trace_cobalt_synch_forget(synch);
 
        xnthread_clear_state(thread, XNPEND);
@@ -836,24 +801,15 @@ void xnsynch_forget_sleeper(struct xnthread *thread)
 }
 EXPORT_SYMBOL_GPL(xnsynch_forget_sleeper);
 
-/**
- * @internal
- * @fn void xnsynch_release_all_ownerships(struct xnthread *thread);
- * @brief Release all ownerships.
- *
- * This call is used internally to release all the ownerships obtained
- * by a thread on synchronization objects. This routine must be
- * entered interrupts off.
- *
- * @param thread The descriptor address of the affected thread.
- *
- * @remark Tags: atomic-entry.
- */
-
 void xnsynch_release_all_ownerships(struct xnthread *thread)
 {
        struct xnsynch *synch, *tmp;
 
+       /*
+        * Release all the ownerships obtained by a thread on
+        * synchronization objects. This routine must be entered
+        * interrupts off.
+        */
        xnthread_for_each_claimed_safe(synch, tmp, thread) {
                xnsynch_release(synch, thread);
                if (synch->cleanup)
diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c
index e06f130..bd6d497 100644
--- a/kernel/cobalt/thread.c
+++ b/kernel/cobalt/thread.c
@@ -541,7 +541,7 @@ void __xnthread_cleanup(struct xnthread *curr)
  * - -EINVAL is returned if @a attr->flags has invalid bits set, or @a
  *   attr->affinity is invalid (e.g. empty).
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnthread_init(struct xnthread *thread,
                  const struct xnthread_init_attr *attr,
@@ -622,7 +622,7 @@ EXPORT_SYMBOL_GPL(xnthread_init);
  *
  * @retval -EBUSY if @a thread was not dormant or stopped ;
  *
- * @remark Tags: might-switch.
+ * @coretags{task-unrestricted, might-switch}
  */
 int xnthread_start(struct xnthread *thread,
                   const struct xnthread_start_attr *attr)
@@ -685,7 +685,7 @@ EXPORT_SYMBOL_GPL(xnthread_start);
  * temporarily for sleeping. If this mode bit is set, such thread
  * would return immediately with XNBREAK set from xnthread_suspend().
  *
- * @remark Tags: might-switch.
+ * @coretags{task-unrestricted, might-switch}
  *
  * @note Setting @a clrmask and @a setmask to zero leads to a nop,
  * only returning the previous mode if @a mode_r is a valid address.
@@ -783,7 +783,7 @@ EXPORT_SYMBOL_GPL(xnthread_set_mode);
  * then this service immediately exits without suspending the thread,
  * but raises the XNBREAK condition in its information mask.
  *
- * @remark Tags: isr-allowed, might-switch.
+ * @coretags{unrestricted, might-switch}
  */
 void xnthread_suspend(struct xnthread *thread, int mask,
                      xnticks_t timeout, xntmode_t timeout_mode,
@@ -993,7 +993,7 @@ EXPORT_SYMBOL_GPL(xnthread_suspend);
  * - XNBREAK means that the wait has been forcibly broken by a call to
  * xnthread_unblock().
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted, might-switch}
  */
 void xnthread_resume(struct xnthread *thread, int mask)
 {
@@ -1111,7 +1111,7 @@ EXPORT_SYMBOL_GPL(xnthread_resume);
  * @return non-zero is returned if the thread was actually unblocked
  * from a pending wait state, 0 otherwise.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted, might-switch}
  */
 int xnthread_unblock(struct xnthread *thread)
 {
@@ -1198,7 +1198,7 @@ EXPORT_SYMBOL_GPL(xnthread_unblock);
  * returned if @a timeout_mode is not compatible with @a idate, such
  * as XN_RELATIVE with @a idate different from XN_INFINITE.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 int xnthread_set_periodic(struct xnthread *thread, xnticks_t idate,
                          xntmode_t timeout_mode, xnticks_t period)
@@ -1276,7 +1276,7 @@ EXPORT_SYMBOL_GPL(xnthread_set_periodic);
  * calling thread. If @a overruns_r is valid, the count of pending
  * overruns is copied to the pointed memory location.
  *
- * @remark Tags: primary-only, might-sleep.
+ * @coretags{primary-only, might-switch}
  */
 int xnthread_wait_period(unsigned long *overruns_r)
 {
@@ -1350,7 +1350,7 @@ EXPORT_SYMBOL_GPL(xnthread_wait_period);
  *   - @a quantum is smaller than the master clock gravity, which
  * denotes a spurious value.
  *
- * @remark Tags: none.
+ * @coretags{task-unrestricted}
  */
 int xnthread_set_slice(struct xnthread *thread, xnticks_t quantum)
 {
@@ -1402,7 +1402,7 @@ EXPORT_SYMBOL_GPL(xnthread_set_slice);
  *
  * @param thread The descriptor address of the thread to terminate.
  *
- * @remark Tags: might-switch.
+ * @coretags{task-unrestricted, might-switch}
  */
 void xnthread_cancel(struct xnthread *thread)
 {
@@ -1477,7 +1477,7 @@ EXPORT_SYMBOL_GPL(xnthread_cancel);
  * - -EBUSY indicates that another thread is already waiting for @a
  *   thread to terminate.
  *
- * @remark Tags: might-switch.
+ * @coretags{task-unrestricted, might-switch}
  */
 int xnthread_join(struct xnthread *thread, bool uninterruptible)
 {
@@ -1544,6 +1544,8 @@ out:
 }
 EXPORT_SYMBOL_GPL(xnthread_join);
 
+#ifdef CONFIG_SMP
+
 /**
  * @fn int xnthread_migrate(int cpu)
  * @brief Migrate the current thread.
@@ -1560,11 +1562,8 @@ EXPORT_SYMBOL_GPL(xnthread_join);
  * @retval -EINVAL if the current thread affinity forbids this
  * migration.
  *
- * @remark Tags: might-switch.
+ * @coretags{primary-only, might-switch}
  */
-
-#ifdef CONFIG_SMP
-
 int xnthread_migrate(int cpu)
 {
        struct xnthread *thread;
@@ -1683,7 +1682,7 @@ void xnthread_migrate_passive(struct xnthread *thread, 
struct xnsched *sched)
  * or ready thread moves it to the end of the runnable queue, thus
  * causing a manual round-robin.
  *
- * @remark Tags: none.
+ * @coretags{task-unregistred}
  *
  * @note The changes only apply to the Xenomai scheduling parameters
  * for @a thread. There is no propagation/translation of such changes
diff --git a/kernel/cobalt/timer.c b/kernel/cobalt/timer.c
index 4e0cbca..519ac8e 100644
--- a/kernel/cobalt/timer.c
+++ b/kernel/cobalt/timer.c
@@ -97,7 +97,7 @@ int xntimer_heading_p(struct xntimer *timer)
  * @return 0 is returned upon success, or -ETIMEDOUT if an absolute
  * date in the past has been given.
  *
- * @remark Tags: atomic-entry.
+ * @coretags{unrestricted, atomic-entry}
  */
 int xntimer_start(struct xntimer *timer,
                  xnticks_t value, xnticks_t interval,
@@ -170,7 +170,7 @@ EXPORT_SYMBOL_GPL(xntimer_start);
  *
  * @param timer The address of a valid timer descriptor.
  *
- * @remark Tags: atomic-entry, isr-allowed.
+ * @coretags{unrestricted, atomic-entry}
  */
 void __xntimer_stop(struct xntimer *timer)
 {
@@ -208,7 +208,7 @@ EXPORT_SYMBOL_GPL(__xntimer_stop);
  * @return The expiration date in nanoseconds. The special value
  * XN_INFINITE is returned if @a timer is currently disabled.
  *
- * @remark Tags: isr-allowed.
+ * @coretags{unrestricted, atomic-entry}
  */
 xnticks_t xntimer_get_date(struct xntimer *timer)
 {
@@ -236,7 +236,7 @@ EXPORT_SYMBOL_GPL(xntimer_get_date);
  * the associated handler has not been fired yet); in such a case, 1
  * is returned.
  *
- * @remark Tags: irqs-off, isr-allowed.
+ * @coretags{unrestricted, atomic-entry}
  */
 xnticks_t xntimer_get_timeout(struct xntimer *timer)
 {
@@ -284,7 +284,7 @@ EXPORT_SYMBOL_GPL(xntimer_get_timeout);
  * There is no limitation on the number of timers which can be
  * created/active concurrently.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 #ifdef DOXYGEN_CPP
 void xntimer_init(struct xntimer *timer, struct xnclock *clock,
@@ -371,7 +371,7 @@ EXPORT_SYMBOL_GPL(xntimer_switch_tracking);
  *
  * @param timer The address of a valid timer descriptor.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 void xntimer_destroy(struct xntimer *timer)
 {
@@ -396,16 +396,16 @@ EXPORT_SYMBOL_GPL(xntimer_destroy);
 /**
  * Migrate a timer.
  *
- * This call migrates a timer to another cpu. In order to avoid pathological
- * cases, it must be called from the CPU to which @a timer is currently
- * attached.
+ * This call migrates a timer to another cpu. In order to avoid
+ * pathological cases, it must be called from the CPU to which @a
+ * timer is currently attached.
  *
  * @param timer The address of the timer object to be migrated.
  *
  * @param sched The address of the destination per-CPU scheduler
  * slot.
  *
- * @remark Tags: atomic-entry.
+ * @coretags{unrestricted, atomic-entry}
  */
 void __xntimer_migrate(struct xntimer *timer, struct xnsched *sched)
 {                              /* nklocked, IRQs off */
@@ -461,7 +461,7 @@ void xntimer_release_ipi(void)
  *
  * @return the number of overruns of @a timer at date @a now
  *
- * @remark Tags: irqs-off, isr-allowed.
+ * @coretags{unrestricted, atomic-entry}
  */
 unsigned long long xntimer_get_overruns(struct xntimer *timer, xnticks_t now)
 {
@@ -531,14 +531,7 @@ EXPORT_SYMBOL_GPL(xntimer_format_time);
  *
  * @param cdev An pointer to the clock device which notifies us.
  *
- * Environment:
- *
- * This routine is a callback invoked from the kernel's clock event
- * handlers.
- *
- * @note GENERIC_CLOCKEVENTS is required from the host kernel.
- *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  */
 static int program_htick_shot(unsigned long delay,
                              struct clock_event_device *cdev)
@@ -580,7 +573,7 @@ static int program_htick_shot(unsigned long delay,
  *
  * @param cdev An opaque pointer to the clock device which notifies us.
  *
- * @remark Tags: none.
+ * @coretags{unrestricted}
  *
  * @note GENERIC_CLOCKEVENTS is required from the host kernel.
  */
@@ -643,7 +636,7 @@ static void switch_htick_mode(enum clock_event_mode mode,
  * invalid calibration results; in such a case, such hardware is
  * unusable for any timing duties.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xntimer_grab_hardware(int cpu)
 {
@@ -690,7 +683,7 @@ int xntimer_grab_hardware(int cpu)
  *
  * @param cpu The CPU number the timer was grabbed from.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 void xntimer_release_hardware(int cpu)
 {
diff --git a/kernel/cobalt/vfile.c b/kernel/cobalt/vfile.c
index 10966fc..2f7c6fb 100644
--- a/kernel/cobalt/vfile.c
+++ b/kernel/cobalt/vfile.c
@@ -378,12 +378,11 @@ static struct file_operations vfile_snapshot_fops = {
  * change to the data which may be part of the collected records,
  * should also invoke xnvfile_touch() on the associated tag.
  *
- * - entry.lockops is a pointer to a @ref vfile_lockops "locking
- * descriptor", defining the lock and unlock operations for the
- * vfile. This pointer may be left to NULL, in which case the
- * operations on the nucleus lock (i.e. nklock) will be used
- * internally around calls to data collection handlers (see @ref
- * snapshot_ops "operation descriptor").
+ * - entry.lockops is a pointer to a @ref vfile_lockops "lock descriptor",
+ * defining the lock and unlock operations for the vfile. This pointer
+ * may be left to NULL, in which case the operations on the nucleus
+ * lock (i.e. nklock) will be used internally around calls to data
+ * collection handlers (see @ref snapshot_ops "operation descriptor").
  *
  * - .ops is a pointer to an @ref snapshot_ops "operation descriptor".
  *
@@ -397,7 +396,7 @@ static struct file_operations vfile_snapshot_fops = {
  * - -ENOMEM is returned if the virtual file entry cannot be created
  * in the /proc hierarchy.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnvfile_init_snapshot(const char *name,
                          struct xnvfile_snapshot *vfile,
@@ -637,7 +636,7 @@ static struct file_operations vfile_regular_fops = {
  * - -ENOMEM is returned if the virtual file entry cannot be created
  * in the /proc hierarchy.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnvfile_init_regular(const char *name,
                         struct xnvfile_regular *vfile,
@@ -681,7 +680,7 @@ EXPORT_SYMBOL_GPL(xnvfile_init_regular);
  * - -ENOMEM is returned if the virtual directory entry cannot be
  * created in the /proc hierarchy.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnvfile_init_dir(const char *name,
                     struct xnvfile_directory *vdir,
@@ -728,7 +727,7 @@ EXPORT_SYMBOL_GPL(xnvfile_init_dir);
  * - -ENOMEM is returned if the virtual link entry cannot be created
  * in the /proc hierarchy.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 int xnvfile_init_link(const char *from,
                      const char *to,
@@ -760,7 +759,7 @@ EXPORT_SYMBOL_GPL(xnvfile_init_link);
  * @param vfile A pointer to the virtual file descriptor to
  * remove.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 void xnvfile_destroy(struct xnvfile *vfile)
 {
@@ -793,7 +792,7 @@ EXPORT_SYMBOL_GPL(xnvfile_destroy);
  *
  * - -EFAULT indicates an invalid source buffer address.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 ssize_t xnvfile_get_blob(struct xnvfile_input *input,
                         void *data, size_t size)
@@ -837,7 +836,7 @@ EXPORT_SYMBOL_GPL(xnvfile_get_blob);
  *
  * - -EFAULT indicates an invalid source buffer address.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 ssize_t xnvfile_get_string(struct xnvfile_input *input,
                           char *s, size_t maxlen)
@@ -889,7 +888,7 @@ EXPORT_SYMBOL_GPL(xnvfile_get_string);
  *
  * - -EFAULT indicates an invalid source buffer address.
  *
- * @remark Tags: secondary-only.
+ * @coretags{secondary-only}
  */
 ssize_t xnvfile_get_integer(struct xnvfile_input *input, long *valp)
 {


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to