FreeRTOS_sockets.h
BaseType_t FreeRTOS_SignalSocket( Socket_t xSocket );
BaseType_t FreeRTOS_SignalSocketFromISR( Socket_t xSocket,
BaseType_t *pxHigherPriorityTaskWoken );
用于向套接字发送信号,其结果是:任何在读取套接字时被阻塞的任务
将退出阻塞状态(中止
阻塞操作),并且任务的读操作
(
FreeRTOS_recv() 或
FreeRTOS_recvfrom())
会返回 -pdFREERTOS_ERRNO_EINTR。
如果此套接字是某套接字集 (SocketSet_t) 的一部分,则使用该套接字集的
FreeRTOS_select()
调用也会被中断,并
返回 eSELECT_INTR。
FreeRTOS_SignalSocketFromISR() 是 FreeRTOS_SignalSocket() 的一种变体,
可用于中断服务程序 (ISR)。
ipconfigSUPPORT_SIGNALS
必须在 FreeRTOSIPConfig.h 中置为 1,
FreeRTOS_SignalSocket() 才可供使用。
参数:
xSocket
|
信号要发往的套接字。
|
pxHigherPriorityTaskWoken
|
[仅用于 FreeRTOS_SignalSocketFromISR()。]
*pxHigherPriorityTaskWoken 必须初始化为 0。
如果向套接字发送信号致使任务解除阻塞状态,并且已解锁任务的优先级高于当前正在运行的任务,则 FreeRTOS_SignalSocketFromISR() 将使
* pxHigherPriorityTaskWoken
置为
pdTRUE
。
如果 FreeRTOS_SignalSocket() 将此值置为 pdTRUE,
则应在中断退出前请求上下文切换
。 用于向 ISR 请求上下文切换的宏名称
取决于移植,
将称为 portYIELD_FROM_ISR() 或
portEND_SWITCHING_ISR()。 请参阅为相关端口所提供的文件和示例
。
|
返回:
如果 xSocket 不是有效的套接字,则返回 -pdFREERTOS_ERRNO_EINVAL
。 否则将返回 0 。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.