to save the preserved space(1KB) and also avoid the heap overhead
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
igmp/igmp_timer.c: In function ‘igmp_timeout’:
igmp/igmp_timer.c:163:11: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
163 | group = (FAR struct igmp_group_s *)arg;
| ^
igmp/igmp_timer.c: In function ‘igmp_startticks’:
igmp/igmp_timer.c:200:55: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
200 | ret = wd_start(group->wdog, ticks, igmp_timeout, 1, (uint32_t)group);
| ^
igmp/igmp_timer.c:200:38: warning: passing argument 3 of ‘wd_start’ from incompatible pointer type [-Wincompatible-pointer-types]
200 | ret = wd_start(group->wdog, ticks, igmp_timeout, 1, (uint32_t)group);
| ^~~~~~~~~~~~
| |
| void (*)(int, uint32_t, ...) {aka void (*)(int, unsigned int, ...)}
In file included from igmp/igmp_timer.c:50:
/home/xiaoxiang/mirtos/nuttx/include/nuttx/wdog.h:233:53: note: expected ‘wdentry_t’ {aka ‘void (*)(int, long unsigned int, ...)’} but argument is of type ‘void (*)(int, uint32_t, ...)’ {aka ‘void (*)(int, unsigned int, ...)’}
233 | int wd_start(WDOG_ID wdog, int32_t delay, wdentry_t wdentry, int argc, ...);
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I153355f85f583f5441d97a0b1278bce167eb3fd0
Build nucleo-144/f767-netnsh fail with below error:
In file included from igmp/igmp_initialize.c:54:
./igmp/igmp.h:130:3: error: unknown type name 'sem_t'
130 | sem_t sem; /* Used to wait for message transmission */
| ^~~~~
make[1]: *** [igmp_initialize.o] Error 1
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
* Simplify EINTR/ECANCEL error handling
1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx
* Unify the void cast usage
1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
net/mld: Fix a couple of places where I forgot to unlock the network in the previous commit.
net/mld: Implement 'Other Querier Present Timer'. This timer is used to revert to Querier mode if there is no other querier on the network. Also, fix some naming: The Done message is not just Version 1 but is used with Version 2 as well.
net/igmp: Back out some blind, backported improvements to IGMP from MLD. There are too many subtle differences in the protocols for this to be safe.
net/mld: More updates from comparison with roughly leveraged code and the MDL RFCs 2710 and 3810.
net/mld: More updated from comparison with roughly leveraged code and the MDL RFCs 2710 and 3810.
net/mld: Beginning comparison with roughly leveraged code and the MDL RFCs 2710 and 3810.
sched/semaphore: Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable. Changed all references to sem_post in the OS to nxsem_post().
sched/semaphore: Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable. Changed all references to sem_destroy() in the OS to nxsem_destroy().
libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable. Changed all references to sem_setprotocol in the OS to nxsem_setprotocol(). sem_getprotocol() was not used in the OS
libc/semaphore: Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable. Changed all references to sem_getvalue in the OS to nxsem_getvalue().
sched/semaphore: Rename all internal private functions from sem_xyz to nxsem_xyz. The sem_ prefix is (will be) reserved only for the application semaphore interfaces.
libc/semaphore: Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable. Changed all references to sem_init in the OS to nxsem_init().
sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.
sched/semaphoate: Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.