aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-09-05 13:04:28 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-09-05 13:04:28 +0000
commit517440bad9d6d2f27689e4e3de72794d869d2c26 (patch)
tree708b9c043e826287a684eaac55315053ad48e0e5
parent737c82e787472f325fe22f7cbfe82ef8be8a6a66 (diff)
downloadChibiOS-517440bad9d6d2f27689e4e3de72794d869d2c26.tar.gz
ChibiOS-517440bad9d6d2f27689e4e3de72794d869d2c26.tar.bz2
ChibiOS-517440bad9d6d2f27689e4e3de72794d869d2c26.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@425 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/ARM7-AT91SAM7X-GCC/chconf.h24
-rw-r--r--demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h24
-rw-r--r--demos/ARM7-LPC214x-G++/chconf.h24
-rw-r--r--demos/ARM7-LPC214x-GCC-minimal/chconf.h24
-rw-r--r--demos/ARM7-LPC214x-GCC/chconf.h24
-rw-r--r--demos/ARMCM3-STM32F103-GCC/chconf.h24
-rw-r--r--demos/AVR-AT90CANx-GCC/chconf.h24
-rw-r--r--demos/AVR-ATmega128-GCC/chconf.h24
-rw-r--r--demos/MSP430-MSP430x1611-GCC/chconf.h24
-rw-r--r--demos/Win32-MinGW/chconf.h29
-rw-r--r--readme.txt2
-rw-r--r--src/chthreads.c3
-rw-r--r--src/include/sleep.h2
-rw-r--r--src/include/threads.h3
-rw-r--r--src/templates/chconf.h26
15 files changed, 273 insertions, 8 deletions
diff --git a/demos/ARM7-AT91SAM7X-GCC/chconf.h b/demos/ARM7-AT91SAM7X-GCC/chconf.h
index f06a707b6..57cc9d013 100644
--- a/demos/ARM7-AT91SAM7X-GCC/chconf.h
+++ b/demos/ARM7-AT91SAM7X-GCC/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h b/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h
index f06a707b6..57cc9d013 100644
--- a/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h
+++ b/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/ARM7-LPC214x-G++/chconf.h b/demos/ARM7-LPC214x-G++/chconf.h
index 847a62d4a..292074816 100644
--- a/demos/ARM7-LPC214x-G++/chconf.h
+++ b/demos/ARM7-LPC214x-G++/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/ARM7-LPC214x-GCC-minimal/chconf.h b/demos/ARM7-LPC214x-GCC-minimal/chconf.h
index 1302dac3e..206272504 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/chconf.h
+++ b/demos/ARM7-LPC214x-GCC-minimal/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
//#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/ARM7-LPC214x-GCC/chconf.h b/demos/ARM7-LPC214x-GCC/chconf.h
index f06a707b6..57cc9d013 100644
--- a/demos/ARM7-LPC214x-GCC/chconf.h
+++ b/demos/ARM7-LPC214x-GCC/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/ARMCM3-STM32F103-GCC/chconf.h b/demos/ARMCM3-STM32F103-GCC/chconf.h
index f06a707b6..57cc9d013 100644
--- a/demos/ARMCM3-STM32F103-GCC/chconf.h
+++ b/demos/ARMCM3-STM32F103-GCC/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/AVR-AT90CANx-GCC/chconf.h b/demos/AVR-AT90CANx-GCC/chconf.h
index 132bc4f15..eca46b974 100644
--- a/demos/AVR-AT90CANx-GCC/chconf.h
+++ b/demos/AVR-AT90CANx-GCC/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/AVR-ATmega128-GCC/chconf.h b/demos/AVR-ATmega128-GCC/chconf.h
index 58f0fca7e..c44cd39d5 100644
--- a/demos/AVR-ATmega128-GCC/chconf.h
+++ b/demos/AVR-ATmega128-GCC/chconf.h
@@ -34,6 +34,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -172,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/MSP430-MSP430x1611-GCC/chconf.h b/demos/MSP430-MSP430x1611-GCC/chconf.h
index 8087f679f..0d1773a6a 100644
--- a/demos/MSP430-MSP430x1611-GCC/chconf.h
+++ b/demos/MSP430-MSP430x1611-GCC/chconf.h
@@ -35,6 +35,13 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -173,6 +180,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/demos/Win32-MinGW/chconf.h b/demos/Win32-MinGW/chconf.h
index f16918f72..71a2cf36e 100644
--- a/demos/Win32-MinGW/chconf.h
+++ b/demos/Win32-MinGW/chconf.h
@@ -29,16 +29,18 @@
#ifndef _CHCONF_H_
#define _CHCONF_H_
-/*
- * NOTE: this is just documentation for doxigen, the real configuration file
- * is the one into the project directories.
- */
-
/** Configuration option: if specified then time efficient rather than space
* efficient code is used when two possible implementations exist, note
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+//#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
@@ -177,6 +179,23 @@
*/
//#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */
diff --git a/readme.txt b/readme.txt
index cc59f99b1..4f1c2b485 100644
--- a/readme.txt
+++ b/readme.txt
@@ -89,6 +89,8 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
not use the allocation services internally, it is up to the application
code to use the allocators in order to use dynamic system objects.
Both the allocators can be disabled and removed from the memory image.
+- NEW: Added option macros in chconf.h to add custom fields and initialization
+ code to the Thread structure.
- FIX: Corrected the wrong definition of the chThdResumeI() macro.
- FIX: The API chSemWaitTimeout() was missing in the documentation.
- CHANGE: Now the chThdResume() asserts that the thread is in PRSUSPEND state
diff --git a/src/chthreads.c b/src/chthreads.c
index 2069fe389..a936fb6dc 100644
--- a/src/chthreads.c
+++ b/src/chthreads.c
@@ -50,6 +50,9 @@ void init_thread(tprio_t prio, tmode_t mode, Thread *tp) {
#ifdef CH_USE_EXIT_EVENT
chEvtInit(&tp->p_exitesource);
#endif
+#ifdef CH_USE_THREAD_EXT
+ THREAD_EXT_INIT(tp);
+#endif
}
#ifdef CH_USE_DEBUG
diff --git a/src/include/sleep.h b/src/include/sleep.h
index c718bb4ba..36ba9470a 100644
--- a/src/include/sleep.h
+++ b/src/include/sleep.h
@@ -28,9 +28,7 @@
#ifdef __cplusplus
extern "C" {
#endif
-#ifdef CH_USE_SLEEP
void chThdSleep(systime_t time);
-#endif /* CH_USE_SLEEP */
#ifdef CH_USE_SYSTEMTIME
bool_t chSysInTimeWindow(systime_t start, systime_t end);
#endif /* CH_USE_SYSTEMTIME */
diff --git a/src/include/threads.h b/src/include/threads.h
index 2a53cb1fd..8c3974820 100644
--- a/src/include/threads.h
+++ b/src/include/threads.h
@@ -106,6 +106,9 @@ struct Thread {
/** Thread's own, non-inherited, priority. */
tprio_t p_realprio;
#endif
+#ifdef CH_USE_THREAD_EXT
+ THREAD_EXT_FIELDS
+#endif
};
/** Thread state: Ready to run, waiting on the ready list.*/
diff --git a/src/templates/chconf.h b/src/templates/chconf.h
index 1f6fc879e..d7e42dbed 100644
--- a/src/templates/chconf.h
+++ b/src/templates/chconf.h
@@ -35,12 +35,19 @@
* that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: it specified this option enables the \p Thread
+ * extension fields and initiazation code.
+ * @see THREAD_EXT_FIELDS
+ * @see THREAD_EXT_INIT
+ */
+#define CH_USE_THREAD_EXT
+
/** Configuration option: if specified then the Virtual Timers subsystem is
* included in the kernel.*/
#define CH_USE_VIRTUAL_TIMERS
/** Configuration option: if specified then the kernel performs the round
- * robin scheduling algorithm on threads of equal priority. */
+ * robin scheduling algorithm on threads of equal priority.*/
#define CH_USE_ROUNDROBIN
/** Configuration option: if specified then the System Timer subsystem is
@@ -173,6 +180,23 @@
*/
#define CH_USE_TRACE
+/** User fields added to the end of the \p Thread structure if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_FIELDS \
+struct { \
+ /* Add fields here.*/ \
+};
+
+/** User initialization code added to the \p chThdCreate() API if the
+ * \p CH_USE_THREAD_EXT option is enabled.
+ * @see CH_USE_THREAD_EXT
+ */
+#define THREAD_EXT_INIT(tp) { \
+ /* Add initialization code here.*/ \
+}
+
#endif /* _CHCONF_H_ */
/** @} */