* [Xenomai-help] doc patch: RT_TASK_INFO [not found] <200607271001.k6RA19sN018076@domain.hid> @ 2006-07-27 15:57 ` Nathaniel J Villaume 2006-07-27 16:50 ` Jan Kiszka 2006-07-27 16:23 ` [Xenomai-help] patch: native/task.h Nathaniel J Villaume ` (2 subsequent siblings) 3 siblings, 1 reply; 16+ messages in thread From: Nathaniel J Villaume @ 2006-07-27 15:57 UTC (permalink / raw) To: xenomai Hi, I got the already documented code to show up in the documentation with the attached patch: (not brilliant documentation update, sorry :) ) Index: xeno_doc_update/include/native/task.h =================================================================== --- xeno_doc_update/include/native/task.h (revision 1231) +++ xeno_doc_update/include/native/task.h (working copy) @@ -66,18 +66,19 @@ struct rt_queue_msg; struct rt_task; - +/*! @brief This structure provides information about tasks. + @see rt_task_inquire() */ typedef struct rt_task_info { - int bprio; /* !< Base priority. */ + int bprio; //!< Base priority. - int cprio; /* !< Current priority. */ + int cprio; //!< Current priority. - unsigned status; /* !< Status. */ + unsigned status; //!< Status. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] doc patch: RT_TASK_INFO 2006-07-27 15:57 ` [Xenomai-help] doc patch: RT_TASK_INFO Nathaniel J Villaume @ 2006-07-27 16:50 ` Jan Kiszka 2006-07-27 18:40 ` Nathaniel Villaume 2006-07-27 18:58 ` [Xenomai-help] RT_TASK_INFO status Nathaniel Villaume 0 siblings, 2 replies; 16+ messages in thread From: Jan Kiszka @ 2006-07-27 16:50 UTC (permalink / raw) To: Nathaniel.J.Villaume; +Cc: xenomai [-- Attachment #1: Type: text/plain, Size: 393 bytes --] Nathaniel J Villaume wrote: > Hi, > I got the already documented code to show up in the documentation > with the attached patch: (not brilliant documentation update, > sorry :) ) Highly welcome, but could we do it like this "/*!< Comment */" e.g.? No C++ comments in C code. Thanks! Jan PS: And one patch per subsystem or so is enough. Please not one per structure... :) [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 250 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] doc patch: RT_TASK_INFO 2006-07-27 16:50 ` Jan Kiszka @ 2006-07-27 18:40 ` Nathaniel Villaume 2006-07-27 19:26 ` Jan Kiszka 2006-07-27 18:58 ` [Xenomai-help] RT_TASK_INFO status Nathaniel Villaume 1 sibling, 1 reply; 16+ messages in thread From: Nathaniel Villaume @ 2006-07-27 18:40 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai The patches were to help you out! I thought that maybe you wouldn't want RT_TASK documented -- users don't really need to konw about magic number and flowgen, do they? But yeah, sorry for the spamming. As for the comment style, the C style comments don't show up using this inline method: /*!< */ -- that was part of the original problem. One solution is to use the @typedef command. The only drawback here is the minor replication. For example: /*! @typedef RT_TASK @brief Contains important data @param magic Magic uniquely identifies the task's wizardry ancestry @param prio task priority */ typedef struct { int magic; // Must come first! (comments don't HAVE to go here) uint prio; // task priority /* etc */ } RT_TASK; What I need to know from you: 1) Do you care about this duplication of struct member-names (harder to keep docs synchronized with code)? 2) Do you want RT_TASK member documentation to show up in doxygen-generated pages? (this lets me know what to change) -Nate ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] doc patch: RT_TASK_INFO 2006-07-27 18:40 ` Nathaniel Villaume @ 2006-07-27 19:26 ` Jan Kiszka 0 siblings, 0 replies; 16+ messages in thread From: Jan Kiszka @ 2006-07-27 19:26 UTC (permalink / raw) To: Nathaniel Villaume; +Cc: xenomai [-- Attachment #1: Type: text/plain, Size: 1841 bytes --] Nathaniel Villaume wrote: > The patches were to help you out! I thought that maybe you wouldn't want > RT_TASK documented -- users don't really need to konw about magic number > and flowgen, do they? But yeah, sorry for the spamming. Yes, I absolutely agree with you that RT_TASK and other internal structures should not pop up in doxygen (but, of course, still have its comments for the developers)! > > As for the comment style, the C style comments don't show up using this > inline method: /*!< */ -- that was part of the original problem. One Mm, not convinced yet: the original code looked like this: /* !< Text */ (note the space). I think there must be a C-conforming way to document fields. > solution is to use the @typedef command. The only drawback here is the > minor replication. For example: > > /*! @typedef RT_TASK > @brief Contains important data > @param magic Magic uniquely identifies the task's wizardry ancestry > @param prio task priority > */ > typedef struct { > int magic; // Must come first! (comments don't HAVE to go here) > uint prio; // task priority > /* etc */ > } RT_TASK; No, not really beautiful. Another way is this (see also RTDM skin): typedef struct { /** Some field */ int some_field; } my_struct; The problem with doxygen is that you never really know what went wrong, at least not within the first hours of experimenting with the code... :( > > What I need to know from you: > 1) Do you care about this duplication of struct member-names (harder to > keep docs synchronized with code)? I would personally prefer to avoid this. > 2) Do you want RT_TASK member documentation to show up in > doxygen-generated pages? (this lets me know what to change) See above. But I'm not the only one around here. Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 250 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] RT_TASK_INFO status 2006-07-27 16:50 ` Jan Kiszka 2006-07-27 18:40 ` Nathaniel Villaume @ 2006-07-27 18:58 ` Nathaniel Villaume 2006-07-27 19:26 ` [Xenomai-help] " Jan Kiszka 1 sibling, 1 reply; 16+ messages in thread From: Nathaniel Villaume @ 2006-07-27 18:58 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai In RT_TASK_INFO, can someone tell me what is the set of all possible values for status? I'd like to include that in the documentation. Thanks, Nate ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] Re: RT_TASK_INFO status 2006-07-27 18:58 ` [Xenomai-help] RT_TASK_INFO status Nathaniel Villaume @ 2006-07-27 19:26 ` Jan Kiszka 2006-07-27 22:45 ` Nathaniel Villaume 0 siblings, 1 reply; 16+ messages in thread From: Jan Kiszka @ 2006-07-27 19:26 UTC (permalink / raw) To: Nathaniel Villaume; +Cc: xenomai [-- Attachment #1: Type: text/plain, Size: 584 bytes --] Nathaniel Villaume wrote: > In RT_TASK_INFO, can someone tell me what is the set of all possible > values for status? > I'd like to include that in the documentation. They are defined in include/native/task.h [1], but they widely redirect to defines in include/nucleus/thread.h [2]. Maybe you could add comments to the native/task.h defines and include them in doxygen. Thanks again for your effort! Jan [1]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/native/task.h#L37 [2]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/nucleus/thread.h#L25 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 250 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] Re: RT_TASK_INFO status 2006-07-27 19:26 ` [Xenomai-help] " Jan Kiszka @ 2006-07-27 22:45 ` Nathaniel Villaume 2006-07-28 9:04 ` Jan Kiszka 2006-07-28 9:09 ` Philippe Gerum 0 siblings, 2 replies; 16+ messages in thread From: Nathaniel Villaume @ 2006-07-27 22:45 UTC (permalink / raw) To: Jan Kiszka, xenomai [-- Attachment #1: Type: text/plain, Size: 2312 bytes --] Jan, Ok, so I played around with your request some. My goal here is to produce documentation, but not at the expense of source-code readability and maintainability. It's not hard to document defines, but it CAN make the source look uglier. Witness nucleus/thread.h: /*! @def XNSUSP */ #define XNSUSP 0x00000001 /*!< @brief Suspended */ /*! @define XNSUSP */ #define XNSUSP 0x00000002 /*!< Sleep-wait for a resource. */ In the first case, @brief is used to get the comment up into the brief listing (duh). If this is not done, then a detailed section is created with the comment, which is a little kludgier on the output end, but still completely usable. Second order of business: refering to this new documentation. In include/native/task.h I made a group native_task_status that encompasses all the define documentation. This makes it easy to refer to from within the RT_TASK_INFO::status documentation (and anywhere else) Third: I removed the duplication as you requested. This is not without consequence. Please note the difference between RT_TASK_INFO and RT_TASK_MCB (which remainded the same). To keep the brief member documentation, I had to use the /** comment */ syntax. This is inconsistent with other usage, but... this gives the results we want. Please see the patch and let me know what you think for this initial set. Again, the decisions to be made are: 1.) Do we document the defines at all? 1a) If so, do we include brief in the define documentation (or not)? 1b) Do we group the defines (or not) for easy reference? (they show up under modules/native/Task Status) My default action is to continue with the style/grouping as in the patch. -Nate Jan Kiszka wrote: >Nathaniel Villaume wrote: > > >>In RT_TASK_INFO, can someone tell me what is the set of all possible >>values for status? >>I'd like to include that in the documentation. >> >> > >They are defined in include/native/task.h [1], but they widely redirect >to defines in include/nucleus/thread.h [2]. Maybe you could add comments >to the native/task.h defines and include them in doxygen. > >Thanks again for your effort! >Jan > >[1]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/native/task.h#L37 >[2]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/nucleus/thread.h#L25 > > > [-- Attachment #2: task_defines.diff --] [-- Type: text/plain, Size: 3624 bytes --] Index: include/native/task.h =================================================================== --- include/native/task.h (revision 1383) +++ include/native/task.h (working copy) @@ -34,8 +34,20 @@ #define T_CPU(cpu) (1 << (24 + (cpu & 7))) /* Up to 8 cpus [0-7] */ #define T_CPUMASK 0xff000000 -/* Status/mode flags. */ -#define T_BLOCKED XNPEND +/*! + \ingroup native + @defgroup native_task_status Task Status + @brief Defines used to specify task state and/or mode + */ +/*! @addtogroup native_task_status + @{ + */ + +/*! @def T_BLOCKED + Task is blocked. See define #XNPEND*/ +#define T_BLOCKED XNPEND +/*! @def T_DELAYED + Task is delayed. See define #XNDELAY*/ #define T_DELAYED XNDELAY #define T_READY XNREADY #define T_DORMANT XNDORMANT @@ -49,6 +61,7 @@ #define T_RPIOFF XNRPIOFF #define T_PRIMARY 0x00000200 /* Recycle internal bits status which */ #define T_JOINABLE 0x00000400 /* won't be passed to the nucleus. */ +/*! @} */ /* Ends addtogroup native_task_status */ /* Task hook types. */ #define T_HOOK_START XNHOOK_THREAD_START @@ -68,31 +81,50 @@ struct rt_queue_msg; struct rt_task; +/*! @brief Structure containing task-information useful to users. + * + * @see rt_task_inquire() + */ typedef struct rt_task_info { + + /** Base priority. */ + int bprio; - int bprio; /* !< Base priority. */ + /** Current priority. Can change through Priority Inheritance.*/ + int cprio; + + /** Task's status. + * Status may be any of the defines in task.h + * @see native_task_status shows possible values. + */ + unsigned status; + + /** Time of next release.*/ + RTIME relpoint; + + /** Symbolic name assigned in creation */ + char name[XNOBJECT_NAME_LEN]; - int cprio; /* !< Current priority. */ - - unsigned status; /* !< Status. */ - - RTIME relpoint; /* !< Next periodic release point. */ - - char name[XNOBJECT_NAME_LEN]; /* !< Symbolic name. */ - } RT_TASK_INFO; #define RT_MCB_FSTORE_LIMIT 64 +/*! @typedef RT_TASK_MCB + @brief Structure used in passing messages between tasks. + @param flowid Flow identifier. + @param opcode Operation code. + @param data Message address. + @param size Message size (bytes). +*/ typedef struct rt_task_mcb { - int flowid; /* !< Flow identifier. */ + int flowid; - int opcode; /* !< Operation code. */ + int opcode; - caddr_t data; /* !< Address of message. */ + caddr_t data; - size_t size; /* !< Size of message. */ + size_t size; } RT_TASK_MCB; Index: include/nucleus/thread.h =================================================================== --- include/nucleus/thread.h (revision 1383) +++ include/nucleus/thread.h (working copy) @@ -1,4 +1,4 @@ -/* +/*! @file nucleus/thread.h * Copyright (C) 2001,2002,2003 Philippe Gerum <rpm@xenomai.org>. * * Xenomai is free software; you can redistribute it and/or modify @@ -23,9 +23,13 @@ #include <nucleus/timer.h> /* Status flags */ -#define XNSUSP 0x00000001 /* Suspended */ -#define XNPEND 0x00000002 /* Sleep-wait for a resource */ -#define XNDELAY 0x00000004 /* Delayed */ + +/*! @def XNSUSP */ +#define XNSUSP 0x00000001 /*!< @brief Suspended */ +/*! @def XNPEND */ +#define XNPEND 0x00000002 /*!< Sleep-wait for a resource */ +/*! @def XNPEND */ +#define XNDELAY 0x00000004 /*!< Delayed */ #define XNREADY 0x00000008 /* Linked to the ready queue */ #define XNDORMANT 0x00000010 /* Not started yet or killed */ #define XNZOMBIE 0x00000020 /* Zombie thread in deletion process */ ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] Re: RT_TASK_INFO status 2006-07-27 22:45 ` Nathaniel Villaume @ 2006-07-28 9:04 ` Jan Kiszka 2006-07-28 13:51 ` Gilles Chanteperdrix 2006-07-28 9:09 ` Philippe Gerum 1 sibling, 1 reply; 16+ messages in thread From: Jan Kiszka @ 2006-07-28 9:04 UTC (permalink / raw) To: Nathaniel Villaume; +Cc: xenomai [-- Attachment #1: Type: text/plain, Size: 7583 bytes --] Nathaniel Villaume wrote: > Jan, > Ok, so I played around with your request some. > > My goal here is to produce documentation, but not at the expense of > source-code readability and maintainability. It's not hard to document > defines, but it CAN make the source look uglier. > Witness nucleus/thread.h: > > /*! @def XNSUSP */ > #define XNSUSP 0x00000001 /*!< @brief Suspended */ > > /*! @define XNSUSP */ > #define XNSUSP 0x00000002 /*!< Sleep-wait for a resource. */ > > In the first case, @brief is used to get the comment up into the brief > listing (duh). If this is not done, then a detailed section is created > with the comment, which is a little kludgier on the output end, but > still completely usable. But why are there those @def/@defines? Are those defines already assigned to some group? > > Second order of business: refering to this new documentation. In > include/native/task.h I made a group native_task_status that encompasses > all the define documentation. This makes it easy to refer to from within > the RT_TASK_INFO::status documentation (and anywhere else) Sounds good. > > Third: I removed the duplication as you requested. This is not without > consequence. Please note the difference between RT_TASK_INFO and > RT_TASK_MCB (which remainded the same). To keep the brief member > documentation, I had to use the /** comment */ syntax. This is > inconsistent with other usage, but... this gives the results we want. Yeah, I noticed this as well. Is this somewhere documented in the doxygen manual? Anyway, I prefer the output format of "/**" or "/**<" for such small structures like we have here. > > Please see the patch and let me know what you think for this initial set. > Again, the decisions to be made are: > 1.) Do we document the defines at all? Via doxygen: those the user needs to know about and they are not already documented inside some function argument description. > 1a) If so, do we include brief in the define documentation (or not)? > 1b) Do we group the defines (or not) for easy reference? (they show up > under modules/native/Task Status) I would say: group them, maybe @brief the groups, but do not add individual @brief to each define. > > My default action is to continue with the style/grouping as in the patch. Ack from me. Anyone else any different preferences or additional suggestions? > > -Nate > > Jan Kiszka wrote: > >> Nathaniel Villaume wrote: >> >> >>> In RT_TASK_INFO, can someone tell me what is the set of all possible >>> values for status? >>> I'd like to include that in the documentation. >>> >> >> They are defined in include/native/task.h [1], but they widely redirect >> to defines in include/nucleus/thread.h [2]. Maybe you could add comments >> to the native/task.h defines and include them in doxygen. >> >> Thanks again for your effort! >> Jan >> >> [1]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/native/task.h#L37 >> >> [2]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/nucleus/thread.h#L25 >> >> >> >> > > ------------------------------------------------------------------------ > > Index: include/native/task.h > =================================================================== > --- include/native/task.h (revision 1383) > +++ include/native/task.h (working copy) > @@ -34,8 +34,20 @@ > #define T_CPU(cpu) (1 << (24 + (cpu & 7))) /* Up to 8 cpus [0-7] */ > #define T_CPUMASK 0xff000000 > > -/* Status/mode flags. */ > -#define T_BLOCKED XNPEND > +/*! > + \ingroup native > + @defgroup native_task_status Task Status > + @brief Defines used to specify task state and/or mode > + */ > +/*! @addtogroup native_task_status > + @{ > + */ > + > +/*! @def T_BLOCKED > + Task is blocked. See define #XNPEND*/ I wouldn't refer to the nucleus layer here (XN...). The native API should explain itself independently. > +#define T_BLOCKED XNPEND > +/*! @def T_DELAYED > + Task is delayed. See define #XNDELAY*/ > #define T_DELAYED XNDELAY > #define T_READY XNREADY > #define T_DORMANT XNDORMANT > @@ -49,6 +61,7 @@ > #define T_RPIOFF XNRPIOFF > #define T_PRIMARY 0x00000200 /* Recycle internal bits status which */ > #define T_JOINABLE 0x00000400 /* won't be passed to the nucleus. */ > +/*! @} */ /* Ends addtogroup native_task_status */ > > /* Task hook types. */ > #define T_HOOK_START XNHOOK_THREAD_START > @@ -68,31 +81,50 @@ > struct rt_queue_msg; > struct rt_task; > > +/*! @brief Structure containing task-information useful to users. > + * > + * @see rt_task_inquire() > + */ > typedef struct rt_task_info { > + > + /** Base priority. */ > + int bprio; > > - int bprio; /* !< Base priority. */ > + /** Current priority. Can change through Priority Inheritance.*/ > + int cprio; > + > + /** Task's status. > + * Status may be any of the defines in task.h > + * @see native_task_status shows possible values. > + */ > + unsigned status; > + > + /** Time of next release.*/ > + RTIME relpoint; > + > + /** Symbolic name assigned in creation */ > + char name[XNOBJECT_NAME_LEN]; > > - int cprio; /* !< Current priority. */ > - > - unsigned status; /* !< Status. */ > - > - RTIME relpoint; /* !< Next periodic release point. */ > - > - char name[XNOBJECT_NAME_LEN]; /* !< Symbolic name. */ > - > } RT_TASK_INFO; That looks good to me. Note that "/**<" works fine for me as well (in case there are only short comments...). > > #define RT_MCB_FSTORE_LIMIT 64 > +/*! @typedef RT_TASK_MCB > + @brief Structure used in passing messages between tasks. > > + @param flowid Flow identifier. > + @param opcode Operation code. > + @param data Message address. > + @param size Message size (bytes). > +*/ > typedef struct rt_task_mcb { > > - int flowid; /* !< Flow identifier. */ > + int flowid; > > - int opcode; /* !< Operation code. */ > + int opcode; > > - caddr_t data; /* !< Address of message. */ > + caddr_t data; > > - size_t size; /* !< Size of message. */ > + size_t size; > > } RT_TASK_MCB; Just to underline previous statement: no go (IMHO). > > Index: include/nucleus/thread.h > =================================================================== > --- include/nucleus/thread.h (revision 1383) > +++ include/nucleus/thread.h (working copy) > @@ -1,4 +1,4 @@ > -/* > +/*! @file nucleus/thread.h > * Copyright (C) 2001,2002,2003 Philippe Gerum <rpm@xenomai.org>. > * > * Xenomai is free software; you can redistribute it and/or modify > @@ -23,9 +23,13 @@ > #include <nucleus/timer.h> > > /* Status flags */ > -#define XNSUSP 0x00000001 /* Suspended */ > -#define XNPEND 0x00000002 /* Sleep-wait for a resource */ > -#define XNDELAY 0x00000004 /* Delayed */ > + > +/*! @def XNSUSP */ > +#define XNSUSP 0x00000001 /*!< @brief Suspended */ > +/*! @def XNPEND */ > +#define XNPEND 0x00000002 /*!< Sleep-wait for a resource */ > +/*! @def XNPEND */ > +#define XNDELAY 0x00000004 /*!< Delayed */ > #define XNREADY 0x00000008 /* Linked to the ready queue */ > #define XNDORMANT 0x00000010 /* Not started yet or killed */ > #define XNZOMBIE 0x00000020 /* Zombie thread in deletion process */ Also a repetition: would be nice if we could avoid the @def. Thanks, Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 250 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] Re: RT_TASK_INFO status 2006-07-28 9:04 ` Jan Kiszka @ 2006-07-28 13:51 ` Gilles Chanteperdrix 2006-08-01 18:46 ` Nathaniel Villaume 0 siblings, 1 reply; 16+ messages in thread From: Gilles Chanteperdrix @ 2006-07-28 13:51 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai, Nathaniel Villaume Jan Kiszka wrote: > > Third: I removed the duplication as you requested. This is not without > > consequence. Please note the difference between RT_TASK_INFO and > > RT_TASK_MCB (which remainded the same). To keep the brief member > > documentation, I had to use the /** comment */ syntax. This is > > inconsistent with other usage, but... this gives the results we want. > > Yeah, I noticed this as well. Is this somewhere documented in the > doxygen manual? Anyway, I prefer the output format of "/**" or "/**<" > for such small structures like we have here. Here is how (I think) this works: - the '<' syntax may only be used to comment members of something larger like a structure or union - they will not appear if the larger thing is not itself commented - putting a documentation with a /** */ before the member is equivalent to putting a documentation block with a /**< */ after the member. As for the brief documentation, the autobrief mode is enabled, so the first sentence of each documentation block should be taken as brief automatically. -- Gilles Chanteperdrix. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] Re: RT_TASK_INFO status 2006-07-28 13:51 ` Gilles Chanteperdrix @ 2006-08-01 18:46 ` Nathaniel Villaume 2006-08-02 6:13 ` Jan Kiszka 2006-08-12 20:52 ` Gilles Chanteperdrix 0 siblings, 2 replies; 16+ messages in thread From: Nathaniel Villaume @ 2006-08-01 18:46 UTC (permalink / raw) Cc: xenomai, Jan Kiszka [-- Attachment #1: Type: text/plain, Size: 290 bytes --] Please see attached diff. I think I found a good way to do it that preserves the readable C-code style ( I gave up using the @define command). This patch includes changes to the defines and the RT_TASK_INFO and RT_TASK_MCB structures. Let me know if you want something different. -Nate [-- Attachment #2: defines_documentation.diff --] [-- Type: text/plain, Size: 7279 bytes --] Index: include/native/task.h =================================================================== --- include/native/task.h (revision 1383) +++ include/native/task.h (working copy) @@ -34,21 +34,28 @@ #define T_CPU(cpu) (1 << (24 + (cpu & 7))) /* Up to 8 cpus [0-7] */ #define T_CPUMASK 0xff000000 -/* Status/mode flags. */ -#define T_BLOCKED XNPEND -#define T_DELAYED XNDELAY -#define T_READY XNREADY -#define T_DORMANT XNDORMANT -#define T_STARTED XNSTARTED -#define T_BOOST XNBOOST -#define T_LOCK XNLOCK -#define T_RRB XNRRB -#define T_NOSIG XNASDI -#define T_SHIELD XNSHIELD -#define T_WARNSW XNTRAPSW -#define T_RPIOFF XNRPIOFF +/*! + \ingroup native + @defgroup native_task_status Task Status + @brief Defines used to specify task state and/or mode + @{ + */ + +#define T_BLOCKED XNPEND /**< See #XNPEND */ +#define T_DELAYED XNDELAY /**< See #XNDELAY */ +#define T_READY XNREADY /**< See #XNREADY */ +#define T_DORMANT XNDORMANT /**< See #XNDORMANT */ +#define T_STARTED XNSTARTED /**< See #XNSTARTED */ +#define T_BOOST XNBOOST /**< See #XNBOOST */ +#define T_LOCK XNLOCK /**< See #XNLOCK */ +#define T_RRB XNRRB /**< See #XNRRB */ +#define T_NOSIG XNASDI /**< See #XNASDI */ +#define T_SHIELD XNSHIELD /**< See #XNSHIELD */ +#define T_WARNSW XNTRAPSW /**< See #XNTRAPSW */ +#define T_RPIOFF XNRPIOFF /**< See #XNRPIOFF */ #define T_PRIMARY 0x00000200 /* Recycle internal bits status which */ #define T_JOINABLE 0x00000400 /* won't be passed to the nucleus. */ +/*! @} */ /* Ends doxygen-group native_task_status */ /* Task hook types. */ #define T_HOOK_START XNHOOK_THREAD_START @@ -68,31 +75,38 @@ struct rt_queue_msg; struct rt_task; +/** Structure containing task-information useful to users. + * + * @see rt_task_inquire() + */ typedef struct rt_task_info { + + int bprio; /**< Base priority. */ - int bprio; /* !< Base priority. */ + int cprio; /**< Current priority. May change through Priority Inheritance.*/ + + unsigned status; /**< Task's status. @see native_task_status */ + + RTIME relpoint; /**< Time of next release.*/ + + char name[XNOBJECT_NAME_LEN]; /**< Symbolic name assigned at creation. */ - int cprio; /* !< Current priority. */ - - unsigned status; /* !< Status. */ - - RTIME relpoint; /* !< Next periodic release point. */ - - char name[XNOBJECT_NAME_LEN]; /* !< Symbolic name. */ - } RT_TASK_INFO; #define RT_MCB_FSTORE_LIMIT 64 +/** Structure used in passing messages between tasks. + @see rt_task_send(), rt_task_reply(), rt_task_receive() +*/ typedef struct rt_task_mcb { - int flowid; /* !< Flow identifier. */ + int flowid; /**< Flow identifier. */ - int opcode; /* !< Operation code. */ + int opcode; /**< Operation code. */ - caddr_t data; /* !< Address of message. */ + caddr_t data; /**< Message address. */ - size_t size; /* !< Size of message. */ + size_t size; /**< Message size (bytes). */ } RT_TASK_MCB; Index: include/nucleus/thread.h =================================================================== --- include/nucleus/thread.h (revision 1383) +++ include/nucleus/thread.h (working copy) @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2001,2002,2003 Philippe Gerum <rpm@xenomai.org>. * * Xenomai is free software; you can redistribute it and/or modify @@ -22,38 +22,48 @@ #include <nucleus/timer.h> +/*! @ingroup nucleus + @defgroup nucleus_status_mode Status and Mode Defines. + @brief These defines are the used by the skins to report status of + tasks and other objects. + @{ +*/ + /* Status flags */ -#define XNSUSP 0x00000001 /* Suspended */ -#define XNPEND 0x00000002 /* Sleep-wait for a resource */ -#define XNDELAY 0x00000004 /* Delayed */ -#define XNREADY 0x00000008 /* Linked to the ready queue */ -#define XNDORMANT 0x00000010 /* Not started yet or killed */ -#define XNZOMBIE 0x00000020 /* Zombie thread in deletion process */ -#define XNRESTART 0x00000040 /* Restarting thread */ -#define XNSTARTED 0x00000080 /* Could be restarted */ -#define XNRELAX 0x00000100 /* Relaxed shadow thread (blocking bit) */ -#define XNHELD 0x00000200 /* Held thread from suspended partition */ -#define XNTIMEO 0x00000400 /* Woken up due to a timeout condition */ -#define XNRMID 0x00000800 /* Pending on a removed resource */ -#define XNBREAK 0x00001000 /* Forcibly awaken from a wait state */ -#define XNKICKED 0x00002000 /* Kicked upon Linux signal (shadow only) */ -#define XNBOOST 0x00004000 /* Undergoes regular PIP boost */ -#define XNDEBUG 0x00008000 /* Hit debugger breakpoint (shadow only) */ +#define XNSUSP 0x00000001 /**< Suspended. */ +#define XNPEND 0x00000002 /**< Sleep-wait for a resource. */ +#define XNDELAY 0x00000004 /**< Delayed */ +#define XNREADY 0x00000008 /**< Linked to the ready queue. */ +#define XNDORMANT 0x00000010 /**< Not started yet or killed */ +#define XNZOMBIE 0x00000020 /**< Zombie thread in deletion process */ +#define XNRESTART 0x00000040 /**< Restarting thread */ +#define XNSTARTED 0x00000080 /**< Could be restarted */ +#define XNRELAX 0x00000100 /**< Relaxed shadow thread (blocking bit) */ +#define XNHELD 0x00000200 /**< Held thread from suspended partition */ +#define XNTIMEO 0x00000400 /**< Woken up due to a timeout condition */ +#define XNRMID 0x00000800 /**< Pending on a removed resource */ +#define XNBREAK 0x00001000 /**< Forcibly awaken from a wait state */ +#define XNKICKED 0x00002000 /**< Kicked upon Linux signal (shadow only) */ +#define XNBOOST 0x00004000 /**< Undergoes regular PIP boost */ +#define XNDEBUG 0x00008000 /**< Hit debugger breakpoint (shadow only) */ + /* Mode flags. */ -#define XNLOCK 0x00010000 /* Not preemptible */ -#define XNRRB 0x00020000 /* Undergoes a round-robin scheduling */ -#define XNASDI 0x00040000 /* ASR are disabled */ -#define XNSHIELD 0x00080000 /* IRQ shield is enabled (shadow only) */ -#define XNTRAPSW 0x00100000 /* Trap execution mode switches */ -#define XNRPIOFF 0x00200000 /* Stop priority coupling (shadow only) */ +#define XNLOCK 0x00010000 /**< Not preemptible */ +#define XNRRB 0x00020000 /**< Undergoes a round-robin scheduling */ +#define XNASDI 0x00040000 /**< ASR are disabled */ +#define XNSHIELD 0x00080000 /**< IRQ shield is enabled (shadow only) */ +#define XNTRAPSW 0x00100000 /**< Trap execution mode switches */ +#define XNRPIOFF 0x00200000 /**< Stop priority coupling (shadow only) */ -#define XNFPU 0x00400000 /* Thread uses FPU */ -#define XNSHADOW 0x00800000 /* Shadow thread */ -#define XNROOT 0x01000000 /* Root thread (i.e. Linux/IDLE) */ -#define XNINVPS 0x02000000 /* Using inverted priority scale */ +#define XNFPU 0x00400000 /**< Thread uses FPU */ +#define XNSHADOW 0x00800000 /**< Shadow thread */ +#define XNROOT 0x01000000 /**< Root thread (that is, Linux/IDLE) */ +#define XNINVPS 0x02000000 /**< Using inverted priority scale */ +/*! @} */ /* Ends doxygen comment group: nucleus_status_modes */ + /* Must follow the declaration order of the above bits. Status symbols are defined as follows: ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] Re: RT_TASK_INFO status 2006-08-01 18:46 ` Nathaniel Villaume @ 2006-08-02 6:13 ` Jan Kiszka 2006-08-12 20:52 ` Gilles Chanteperdrix 1 sibling, 0 replies; 16+ messages in thread From: Jan Kiszka @ 2006-08-02 6:13 UTC (permalink / raw) To: Nathaniel Villaume; +Cc: xenomai [-- Attachment #1: Type: text/plain, Size: 8352 bytes --] Nathaniel Villaume wrote: > Please see attached diff. I think I found a good way to do it that > preserves the readable C-code style ( I gave up using the @define command). > This patch includes changes to the defines and the RT_TASK_INFO and > RT_TASK_MCB structures. > > Let me know if you want something different. > The patch looks good to me, and I assume the output does so as well. :) Thanks, Jan > -Nate > > > ------------------------------------------------------------------------ > > Index: include/native/task.h > =================================================================== > --- include/native/task.h (revision 1383) > +++ include/native/task.h (working copy) > @@ -34,21 +34,28 @@ > #define T_CPU(cpu) (1 << (24 + (cpu & 7))) /* Up to 8 cpus [0-7] */ > #define T_CPUMASK 0xff000000 > > -/* Status/mode flags. */ > -#define T_BLOCKED XNPEND > -#define T_DELAYED XNDELAY > -#define T_READY XNREADY > -#define T_DORMANT XNDORMANT > -#define T_STARTED XNSTARTED > -#define T_BOOST XNBOOST > -#define T_LOCK XNLOCK > -#define T_RRB XNRRB > -#define T_NOSIG XNASDI > -#define T_SHIELD XNSHIELD > -#define T_WARNSW XNTRAPSW > -#define T_RPIOFF XNRPIOFF > +/*! > + \ingroup native > + @defgroup native_task_status Task Status > + @brief Defines used to specify task state and/or mode > + @{ > + */ > + > +#define T_BLOCKED XNPEND /**< See #XNPEND */ > +#define T_DELAYED XNDELAY /**< See #XNDELAY */ > +#define T_READY XNREADY /**< See #XNREADY */ > +#define T_DORMANT XNDORMANT /**< See #XNDORMANT */ > +#define T_STARTED XNSTARTED /**< See #XNSTARTED */ > +#define T_BOOST XNBOOST /**< See #XNBOOST */ > +#define T_LOCK XNLOCK /**< See #XNLOCK */ > +#define T_RRB XNRRB /**< See #XNRRB */ > +#define T_NOSIG XNASDI /**< See #XNASDI */ > +#define T_SHIELD XNSHIELD /**< See #XNSHIELD */ > +#define T_WARNSW XNTRAPSW /**< See #XNTRAPSW */ > +#define T_RPIOFF XNRPIOFF /**< See #XNRPIOFF */ > #define T_PRIMARY 0x00000200 /* Recycle internal bits status which */ > #define T_JOINABLE 0x00000400 /* won't be passed to the nucleus. */ > +/*! @} */ /* Ends doxygen-group native_task_status */ > > /* Task hook types. */ > #define T_HOOK_START XNHOOK_THREAD_START > @@ -68,31 +75,38 @@ > struct rt_queue_msg; > struct rt_task; > > +/** Structure containing task-information useful to users. > + * > + * @see rt_task_inquire() > + */ > typedef struct rt_task_info { > + > + int bprio; /**< Base priority. */ > > - int bprio; /* !< Base priority. */ > + int cprio; /**< Current priority. May change through Priority Inheritance.*/ > + > + unsigned status; /**< Task's status. @see native_task_status */ > + > + RTIME relpoint; /**< Time of next release.*/ > + > + char name[XNOBJECT_NAME_LEN]; /**< Symbolic name assigned at creation. */ > > - int cprio; /* !< Current priority. */ > - > - unsigned status; /* !< Status. */ > - > - RTIME relpoint; /* !< Next periodic release point. */ > - > - char name[XNOBJECT_NAME_LEN]; /* !< Symbolic name. */ > - > } RT_TASK_INFO; > > #define RT_MCB_FSTORE_LIMIT 64 > > +/** Structure used in passing messages between tasks. > + @see rt_task_send(), rt_task_reply(), rt_task_receive() > +*/ > typedef struct rt_task_mcb { > > - int flowid; /* !< Flow identifier. */ > + int flowid; /**< Flow identifier. */ > > - int opcode; /* !< Operation code. */ > + int opcode; /**< Operation code. */ > > - caddr_t data; /* !< Address of message. */ > + caddr_t data; /**< Message address. */ > > - size_t size; /* !< Size of message. */ > + size_t size; /**< Message size (bytes). */ > > } RT_TASK_MCB; > > Index: include/nucleus/thread.h > =================================================================== > --- include/nucleus/thread.h (revision 1383) > +++ include/nucleus/thread.h (working copy) > @@ -1,4 +1,4 @@ > -/* > +/* > * Copyright (C) 2001,2002,2003 Philippe Gerum <rpm@xenomai.org>. > * > * Xenomai is free software; you can redistribute it and/or modify > @@ -22,38 +22,48 @@ > > #include <nucleus/timer.h> > > +/*! @ingroup nucleus > + @defgroup nucleus_status_mode Status and Mode Defines. > + @brief These defines are the used by the skins to report status of > + tasks and other objects. > + @{ > +*/ > + > /* Status flags */ > -#define XNSUSP 0x00000001 /* Suspended */ > -#define XNPEND 0x00000002 /* Sleep-wait for a resource */ > -#define XNDELAY 0x00000004 /* Delayed */ > -#define XNREADY 0x00000008 /* Linked to the ready queue */ > -#define XNDORMANT 0x00000010 /* Not started yet or killed */ > -#define XNZOMBIE 0x00000020 /* Zombie thread in deletion process */ > -#define XNRESTART 0x00000040 /* Restarting thread */ > -#define XNSTARTED 0x00000080 /* Could be restarted */ > -#define XNRELAX 0x00000100 /* Relaxed shadow thread (blocking bit) */ > -#define XNHELD 0x00000200 /* Held thread from suspended partition */ > > -#define XNTIMEO 0x00000400 /* Woken up due to a timeout condition */ > -#define XNRMID 0x00000800 /* Pending on a removed resource */ > -#define XNBREAK 0x00001000 /* Forcibly awaken from a wait state */ > -#define XNKICKED 0x00002000 /* Kicked upon Linux signal (shadow only) */ > -#define XNBOOST 0x00004000 /* Undergoes regular PIP boost */ > -#define XNDEBUG 0x00008000 /* Hit debugger breakpoint (shadow only) */ > +#define XNSUSP 0x00000001 /**< Suspended. */ > +#define XNPEND 0x00000002 /**< Sleep-wait for a resource. */ > +#define XNDELAY 0x00000004 /**< Delayed */ > +#define XNREADY 0x00000008 /**< Linked to the ready queue. */ > +#define XNDORMANT 0x00000010 /**< Not started yet or killed */ > +#define XNZOMBIE 0x00000020 /**< Zombie thread in deletion process */ > +#define XNRESTART 0x00000040 /**< Restarting thread */ > +#define XNSTARTED 0x00000080 /**< Could be restarted */ > +#define XNRELAX 0x00000100 /**< Relaxed shadow thread (blocking bit) */ > +#define XNHELD 0x00000200 /**< Held thread from suspended partition */ > > +#define XNTIMEO 0x00000400 /**< Woken up due to a timeout condition */ > +#define XNRMID 0x00000800 /**< Pending on a removed resource */ > +#define XNBREAK 0x00001000 /**< Forcibly awaken from a wait state */ > +#define XNKICKED 0x00002000 /**< Kicked upon Linux signal (shadow only) */ > +#define XNBOOST 0x00004000 /**< Undergoes regular PIP boost */ > +#define XNDEBUG 0x00008000 /**< Hit debugger breakpoint (shadow only) */ > + > /* Mode flags. */ > -#define XNLOCK 0x00010000 /* Not preemptible */ > -#define XNRRB 0x00020000 /* Undergoes a round-robin scheduling */ > -#define XNASDI 0x00040000 /* ASR are disabled */ > -#define XNSHIELD 0x00080000 /* IRQ shield is enabled (shadow only) */ > -#define XNTRAPSW 0x00100000 /* Trap execution mode switches */ > -#define XNRPIOFF 0x00200000 /* Stop priority coupling (shadow only) */ > +#define XNLOCK 0x00010000 /**< Not preemptible */ > +#define XNRRB 0x00020000 /**< Undergoes a round-robin scheduling */ > +#define XNASDI 0x00040000 /**< ASR are disabled */ > +#define XNSHIELD 0x00080000 /**< IRQ shield is enabled (shadow only) */ > +#define XNTRAPSW 0x00100000 /**< Trap execution mode switches */ > +#define XNRPIOFF 0x00200000 /**< Stop priority coupling (shadow only) */ > > -#define XNFPU 0x00400000 /* Thread uses FPU */ > -#define XNSHADOW 0x00800000 /* Shadow thread */ > -#define XNROOT 0x01000000 /* Root thread (i.e. Linux/IDLE) */ > -#define XNINVPS 0x02000000 /* Using inverted priority scale */ > +#define XNFPU 0x00400000 /**< Thread uses FPU */ > +#define XNSHADOW 0x00800000 /**< Shadow thread */ > +#define XNROOT 0x01000000 /**< Root thread (that is, Linux/IDLE) */ > +#define XNINVPS 0x02000000 /**< Using inverted priority scale */ > > +/*! @} */ /* Ends doxygen comment group: nucleus_status_modes */ > + > /* > Must follow the declaration order of the above bits. Status symbols > are defined as follows: [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 250 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] Re: RT_TASK_INFO status 2006-08-01 18:46 ` Nathaniel Villaume 2006-08-02 6:13 ` Jan Kiszka @ 2006-08-12 20:52 ` Gilles Chanteperdrix 1 sibling, 0 replies; 16+ messages in thread From: Gilles Chanteperdrix @ 2006-08-12 20:52 UTC (permalink / raw) To: Nathaniel Villaume; +Cc: xenomai, Jan Kiszka Nathaniel Villaume wrote: > Please see attached diff. I think I found a good way to do it that > preserves the readable C-code style ( I gave up using the @define command). > This patch includes changes to the defines and the RT_TASK_INFO and > RT_TASK_MCB structures. > > Let me know if you want something different. The patch looks good, nobody protested, so, it is applied, thanks. And sorry for the long response time. -- Gilles Chanteperdrix. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Xenomai-help] Re: RT_TASK_INFO status 2006-07-27 22:45 ` Nathaniel Villaume 2006-07-28 9:04 ` Jan Kiszka @ 2006-07-28 9:09 ` Philippe Gerum 1 sibling, 0 replies; 16+ messages in thread From: Philippe Gerum @ 2006-07-28 9:09 UTC (permalink / raw) To: Nathaniel Villaume; +Cc: xenomai, Jan Kiszka Hi Nate, On Thu, 2006-07-27 at 15:45 -0700, Nathaniel Villaume wrote: > Jan, > Ok, so I played around with your request some. > > My goal here is to produce documentation, but not at the expense of > source-code readability and maintainability. It's not hard to document > defines, but it CAN make the source look uglier. > Witness nucleus/thread.h: > > /*! @def XNSUSP */ > #define XNSUSP 0x00000001 /*!< @brief Suspended */ > > /*! @define XNSUSP */ > #define XNSUSP 0x00000002 /*!< Sleep-wait for a resource. */ > > In the first case, @brief is used to get the comment up into the brief > listing (duh). If this is not done, then a detailed section is created > with the comment, which is a little kludgier on the output end, but > still completely usable. > > Second order of business: refering to this new documentation. In > include/native/task.h I made a group native_task_status that encompasses > all the define documentation. This makes it easy to refer to from within > the RT_TASK_INFO::status documentation (and anywhere else) > > Third: I removed the duplication as you requested. This is not without > consequence. Please note the difference between RT_TASK_INFO and > RT_TASK_MCB (which remainded the same). To keep the brief member > documentation, I had to use the /** comment */ syntax. This is > inconsistent with other usage, but... this gives the results we want. > > Please see the patch and let me know what you think for this initial set. Regarding the inline vs out-of-line typedef documentation, I would also go for inlining it, to help preventing discrepancies between comments and implementation, provided that we keep such doc reasonably terse (IOW, making sure that those typedefs still look like C language). > Again, the decisions to be made are: > 1.) Do we document the defines at all? > 1a) If so, do we include brief in the define documentation (or not)? The bottom line is that defines are assigned their meaning by the routines which accept or return them as values, which in turn means that a back link to those routines is likely the best documentation we could bring to the reader. In any case, the routines would document the flags they manipulate. > 1b) Do we group the defines (or not) for easy reference? (they show up > under modules/native/Task Status) It wouldn't hurt, even if I'm not sure that people would search for information starting from the set of available flags; I guess that they would rather seek a feature, therefore they would first look for a routine providing the needed functionality, which ends up manipulating the flags. This said, the way we document the nucleus for people implementing skins is another story, since this is clearly a different use case. > > My default action is to continue with the style/grouping as in the patch. > > -Nate > > Jan Kiszka wrote: > > >Nathaniel Villaume wrote: > > > > > >>In RT_TASK_INFO, can someone tell me what is the set of all possible > >>values for status? > >>I'd like to include that in the documentation. > >> > >> > > > >They are defined in include/native/task.h [1], but they widely redirect > >to defines in include/nucleus/thread.h [2]. Maybe you could add comments > >to the native/task.h defines and include them in doxygen. > > > >Thanks again for your effort! > >Jan > > > >[1]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/native/task.h#L37 > >[2]http://www.rts.uni-hannover.de/xenomai/lxr/source/include/nucleus/thread.h#L25 > > > > > > > plain text document attachment (task_defines.diff) > Index: include/native/task.h > =================================================================== > --- include/native/task.h (revision 1383) > +++ include/native/task.h (working copy) > @@ -34,8 +34,20 @@ > #define T_CPU(cpu) (1 << (24 + (cpu & 7))) /* Up to 8 cpus [0-7] */ > #define T_CPUMASK 0xff000000 > > -/* Status/mode flags. */ > -#define T_BLOCKED XNPEND > +/*! > + \ingroup native > + @defgroup native_task_status Task Status > + @brief Defines used to specify task state and/or mode > + */ > +/*! @addtogroup native_task_status > + @{ > + */ > + > +/*! @def T_BLOCKED > + Task is blocked. See define #XNPEND*/ > +#define T_BLOCKED XNPEND > +/*! @def T_DELAYED > + Task is delayed. See define #XNDELAY*/ > #define T_DELAYED XNDELAY > #define T_READY XNREADY > #define T_DORMANT XNDORMANT > @@ -49,6 +61,7 @@ > #define T_RPIOFF XNRPIOFF > #define T_PRIMARY 0x00000200 /* Recycle internal bits status which */ > #define T_JOINABLE 0x00000400 /* won't be passed to the nucleus. */ > +/*! @} */ /* Ends addtogroup native_task_status */ > > /* Task hook types. */ > #define T_HOOK_START XNHOOK_THREAD_START > @@ -68,31 +81,50 @@ > struct rt_queue_msg; > struct rt_task; > > +/*! @brief Structure containing task-information useful to users. > + * > + * @see rt_task_inquire() > + */ > typedef struct rt_task_info { > + > + /** Base priority. */ > + int bprio; > > - int bprio; /* !< Base priority. */ > + /** Current priority. Can change through Priority Inheritance.*/ > + int cprio; > + > + /** Task's status. > + * Status may be any of the defines in task.h > + * @see native_task_status shows possible values. > + */ > + unsigned status; > + > + /** Time of next release.*/ > + RTIME relpoint; > + > + /** Symbolic name assigned in creation */ > + char name[XNOBJECT_NAME_LEN]; > > - int cprio; /* !< Current priority. */ > - > - unsigned status; /* !< Status. */ > - > - RTIME relpoint; /* !< Next periodic release point. */ > - > - char name[XNOBJECT_NAME_LEN]; /* !< Symbolic name. */ > - > } RT_TASK_INFO; > > #define RT_MCB_FSTORE_LIMIT 64 > +/*! @typedef RT_TASK_MCB > + @brief Structure used in passing messages between tasks. > > + @param flowid Flow identifier. > + @param opcode Operation code. > + @param data Message address. > + @param size Message size (bytes). > +*/ > typedef struct rt_task_mcb { > > - int flowid; /* !< Flow identifier. */ > + int flowid; > > - int opcode; /* !< Operation code. */ > + int opcode; > > - caddr_t data; /* !< Address of message. */ > + caddr_t data; > > - size_t size; /* !< Size of message. */ > + size_t size; > > } RT_TASK_MCB; > > Index: include/nucleus/thread.h > =================================================================== > --- include/nucleus/thread.h (revision 1383) > +++ include/nucleus/thread.h (working copy) > @@ -1,4 +1,4 @@ > -/* > +/*! @file nucleus/thread.h > * Copyright (C) 2001,2002,2003 Philippe Gerum <rpm@xenomai.org>. > * > * Xenomai is free software; you can redistribute it and/or modify > @@ -23,9 +23,13 @@ > #include <nucleus/timer.h> > > /* Status flags */ > -#define XNSUSP 0x00000001 /* Suspended */ > -#define XNPEND 0x00000002 /* Sleep-wait for a resource */ > -#define XNDELAY 0x00000004 /* Delayed */ > + > +/*! @def XNSUSP */ > +#define XNSUSP 0x00000001 /*!< @brief Suspended */ > +/*! @def XNPEND */ > +#define XNPEND 0x00000002 /*!< Sleep-wait for a resource */ > +/*! @def XNPEND */ > +#define XNDELAY 0x00000004 /*!< Delayed */ > #define XNREADY 0x00000008 /* Linked to the ready queue */ > #define XNDORMANT 0x00000010 /* Not started yet or killed */ > #define XNZOMBIE 0x00000020 /* Zombie thread in deletion process */ > _______________________________________________ > Xenomai-help mailing list > Xenomai-help@domain.hid > https://mail.gna.org/listinfo/xenomai-help -- Philippe. ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] patch: native/task.h [not found] <200607271001.k6RA19sN018076@domain.hid> 2006-07-27 15:57 ` [Xenomai-help] doc patch: RT_TASK_INFO Nathaniel J Villaume @ 2006-07-27 16:23 ` Nathaniel J Villaume 2006-07-27 16:27 ` [Xenomai-help] patch: info_mcb_changed_native_task.h.diff Nathaniel J Villaume 2006-07-27 16:28 ` [Xenomai-help] patch: all_changed_native_task.h.diff Nathaniel J Villaume 3 siblings, 0 replies; 16+ messages in thread From: Nathaniel J Villaume @ 2006-07-27 16:23 UTC (permalink / raw) To: xenomai Hi, I include two more patches here: 1) info_mcb_changed_native_task.h.diff: only changed documentation level of RT_TASK_INFO and RT_TASK_MCB 2) all_changed_native_task.h.diff: changed the file to show all the documented bits (including RT_TASK The reasoon is that maybe the internals of RT_TASK don't need to be exposed. HTH, -Nate ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] patch: info_mcb_changed_native_task.h.diff [not found] <200607271001.k6RA19sN018076@domain.hid> 2006-07-27 15:57 ` [Xenomai-help] doc patch: RT_TASK_INFO Nathaniel J Villaume 2006-07-27 16:23 ` [Xenomai-help] patch: native/task.h Nathaniel J Villaume @ 2006-07-27 16:27 ` Nathaniel J Villaume 2006-07-27 16:28 ` [Xenomai-help] patch: all_changed_native_task.h.diff Nathaniel J Villaume 3 siblings, 0 replies; 16+ messages in thread From: Nathaniel J Villaume @ 2006-07-27 16:27 UTC (permalink / raw) To: xenomai sorry, have to send one at a time.... ^ permalink raw reply [flat|nested] 16+ messages in thread
* [Xenomai-help] patch: all_changed_native_task.h.diff [not found] <200607271001.k6RA19sN018076@domain.hid> ` (2 preceding siblings ...) 2006-07-27 16:27 ` [Xenomai-help] patch: info_mcb_changed_native_task.h.diff Nathaniel J Villaume @ 2006-07-27 16:28 ` Nathaniel J Villaume 3 siblings, 0 replies; 16+ messages in thread From: Nathaniel J Villaume @ 2006-07-27 16:28 UTC (permalink / raw) To: xenomai [-- Attachment #1: Type: text/plain, Size: 33 bytes --] last file in mentioned patches [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: all_changed_native_task.h.diff --] [-- Type: text/x-patch; name="all_changed_native_task.h.diff", Size: 2717 bytes --] --- native/task.h 2006-06-13 13:25:33.000000000 -0700 +++ xeno_doc_update/include/native/task.h 2006-06-13 13:46:18.000000000 -0700 @@ -67,61 +66,66 @@ struct rt_queue_msg; struct rt_task; - +/*! @brief This structure provides information about tasks. + @see rt_task_inquire() */ typedef struct rt_task_info { - int bprio; /* !< Base priority. */ + int bprio; //!< Base priority. - int cprio; /* !< Current priority. */ + int cprio; //!< Current priority. - unsigned status; /* !< Status. */ + unsigned status; //!< Status. - RTIME relpoint; /* !< Next periodic release point. */ + RTIME relpoint; //!< Periodic release point. - char name[XNOBJECT_NAME_LEN]; /* !< Symbolic name. */ + char name[XNOBJECT_NAME_LEN]; //!< Symbolic name. } RT_TASK_INFO; #define RT_MCB_FSTORE_LIMIT 64 - +/*! @brief Task Message Control Block + @see rt_task_send() + */ typedef struct rt_task_mcb { - int flowid; /* !< Flow identifier. */ + int flowid; //!< Flow identifier. - int opcode; /* !< Operation code. */ + int opcode; //!< Operation code. - caddr_t data; /* !< Address of message. */ + caddr_t data; //!< Address of message. - size_t size; /* !< Size of message. */ + size_t size; //!< Size of message. } RT_TASK_MCB; #if defined(__KERNEL__) || defined(__XENO_SIM__) #define XENO_TASK_MAGIC 0x55550101 - +/*! @brief Structure that holds lots (all) the information about tasks. + */ typedef struct rt_task { - unsigned magic; /* !< Magic code - must be first */ + unsigned magic; //!< Magic code - must be first */ xnholder_t link; #define link2rtask(laddr) \ ((RT_TASK *)(((char *)laddr) - (int)(&((RT_TASK *)0)->link))) - xnthread_t thread_base; + xntimer_t timer; - char rname[XNOBJECT_NAME_LEN]; /* !< Name in registry. Not the same as - thread name for anonymous threads. */ + xnthread_t thread_base; + /*!< Name in registry. Not the same as thread name for anonymous threads. */ + char rname[XNOBJECT_NAME_LEN]; int suspend_depth; int overrun; - xnsynch_t safesynch; /* !< Safe synchronization object. */ + xnsynch_t safesynch; //!< Safe synchronization object. - u_long safelock; /* !< Safe lock count. */ + u_long safelock; //!< Safe lock count. - u_long cstamp; /* !< Creation stamp. */ + u_long cstamp; //!< Creation stamp. xnarch_cpumask_t affinity; @@ -152,7 +156,7 @@ xnsynch_t mrecv, msendq; - int flowgen; /* !< Flow id. generator. */ + int flowgen; //!< Flow id. generator. #endif /* CONFIG_XENO_OPT_NATIVE_MPS */ } RT_TASK; ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2006-08-12 20:52 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200607271001.k6RA19sN018076@domain.hid>
2006-07-27 15:57 ` [Xenomai-help] doc patch: RT_TASK_INFO Nathaniel J Villaume
2006-07-27 16:50 ` Jan Kiszka
2006-07-27 18:40 ` Nathaniel Villaume
2006-07-27 19:26 ` Jan Kiszka
2006-07-27 18:58 ` [Xenomai-help] RT_TASK_INFO status Nathaniel Villaume
2006-07-27 19:26 ` [Xenomai-help] " Jan Kiszka
2006-07-27 22:45 ` Nathaniel Villaume
2006-07-28 9:04 ` Jan Kiszka
2006-07-28 13:51 ` Gilles Chanteperdrix
2006-08-01 18:46 ` Nathaniel Villaume
2006-08-02 6:13 ` Jan Kiszka
2006-08-12 20:52 ` Gilles Chanteperdrix
2006-07-28 9:09 ` Philippe Gerum
2006-07-27 16:23 ` [Xenomai-help] patch: native/task.h Nathaniel J Villaume
2006-07-27 16:27 ` [Xenomai-help] patch: info_mcb_changed_native_task.h.diff Nathaniel J Villaume
2006-07-27 16:28 ` [Xenomai-help] patch: all_changed_native_task.h.diff Nathaniel J Villaume
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.