lwIP bindings improvements. Added new function chRegSetThreadNamex().

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8058 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
gdisirio 2015-06-28 11:40:14 +00:00
parent 32490c00b3
commit 8131d84ea7
5 changed files with 53 additions and 15 deletions

View File

@ -148,11 +148,8 @@ extern "C" {
* @return Thread name as a zero terminated string.
* @retval NULL if the thread name has not been set.
*
* @iclass
*/
static inline const char *chRegGetThreadNameI(thread_t *tp) {
chDbgCheckClassI();
static inline const char *chRegGetThreadNameX(thread_t *tp) {
#if CH_CFG_USE_REGISTRY == TRUE
return tp->p_name;
@ -162,6 +159,26 @@ static inline const char *chRegGetThreadNameI(thread_t *tp) {
#endif
}
/**
* @brief Changes the name of the specified thread.
* @pre This function only sets the name if the option
* @p CH_CFG_USE_REGISTRY is enabled else it does
* nothing.
*
* @param[in] tp pointer to the thread
* @param[in] name name to be set
*
* @xclass
*/
static inline void chRegSetThreadNameX(thread_t *tp, const char *name) {
#if CH_CFG_USE_REGISTRY == TRUE
tp->p_name = name;
#else
(void)tp;
(void)name;
#endif
}
#endif /* CH_CFG_USE_REGISTRY == TRUE */
#endif /* _CHREGISTRY_H_ */

View File

@ -65,7 +65,7 @@
static void _idle_thread(void *p) {
(void)p;
chRegSetThreadName("idle");
while (true) {
/*lint -save -e522 [2.2] Apparently no side effects because it contains
an asm instruction.*/
@ -135,11 +135,17 @@ void chSysInit(void) {
chRegSetThreadName((const char *)&ch_debug);
#if CH_CFG_NO_IDLE_THREAD == FALSE
{
/* This thread has the lowest priority in the system, its role is just to
serve interrupts in its context while keeping the lowest energy saving
mode compatible with the system status.*/
(void) chThdCreateStatic(ch.idle_thread_wa, sizeof(ch.idle_thread_wa),
IDLEPRIO, (tfunc_t)_idle_thread, NULL);
thread_t *tp = chThdCreateStatic(ch.idle_thread_wa,
sizeof(ch.idle_thread_wa),
IDLEPRIO,
(tfunc_t)_idle_thread,
NULL);
chRegSetThreadNameX(tp, "idle");
}
#endif
}

View File

@ -202,28 +202,43 @@ void sys_mbox_set_invalid(sys_mbox_t *mbox) {
sys_thread_t sys_thread_new(const char *name, lwip_thread_fn thread,
void *arg, int stacksize, int prio) {
size_t wsz;
void *wsp;
syssts_t sts;
thread_t *tp;
(void)name;
wsz = THD_WORKING_AREA_SIZE(stacksize);
wsp = chCoreAlloc(wsz);
if (wsp == NULL)
return NULL;
return (sys_thread_t)chThdCreateStatic(wsp, wsz, prio, (tfunc_t)thread, arg);
#if CH_DBG_FILL_THREADS == TRUE
_thread_memfill((uint8_t *)wsp,
(uint8_t *)wsp + sizeof(thread_t),
CH_DBG_THREAD_FILL_VALUE);
_thread_memfill((uint8_t *)wsp + sizeof(thread_t),
(uint8_t *)wsp + wsz,
CH_DBG_STACK_FILL_VALUE);
#endif
sts = chSysGetStatusAndLockX();
tp = chThdCreateI(wsp, wsz, prio, (tfunc_t)thread, arg);
chRegSetThreadNameX(tp, name);
chThdStartI(tp);
chSysRestoreStatusX(sts);
return (sys_thread_t)tp;
}
sys_prot_t sys_arch_protect(void) {
osalSysLock();
return 0;
return chSysGetStatusAndLockX();
}
void sys_arch_unprotect(sys_prot_t pval) {
(void)pval;
osalSysUnlock();
osalSysRestoreStatusX((syssts_t)pval);
}
u32_t sys_now(void) {

View File

@ -56,7 +56,7 @@
typedef semaphore_t * sys_sem_t;
typedef mailbox_t * sys_mbox_t;
typedef thread_t * sys_thread_t;
typedef int sys_prot_t;
typedef syssts_t sys_prot_t;
#define SYS_MBOX_NULL (mailbox_t *)0
#define SYS_THREAD_NULL (thread_t *)0

View File

@ -43,7 +43,7 @@
/** @brief IP Address. */
#if !defined(LWIP_IPADDR) || defined(__DOXYGEN__)
#define LWIP_IPADDR(p) IP4_ADDR(p, 192, 168, 1, 20)
#define LWIP_IPADDR(p) IP4_ADDR(p, 192, 168, 1, 10)
#endif
/** @brief IP Gateway. */