FreeRTOS_sockets.h
注意:仅当 ipconfigPROCESS_CUSTOM_ETHERNET_FRAMES
在 FreeRTOSIPConfig.h 文件中设置为 1 时,才需要定义钩子。
eFrameProcessingResult_t eApplicationProcessCustomFrameHook( NetworkBufferDescriptor_t * const pxNetworkBuffer );
eApplicationProcessCustomFrameHook 是应用程序定义的钩子函数(或*回调*函数),当 FreeRTOS-Plus-TCP 堆栈接收到其未处理的帧(ARP 帧或 IP 数据包除外)时,该堆栈会调用此函数。
回调函数由应用程序写入程序实现,但由 TCP/IP 堆栈调用。回调函数的原型
必须与上面的原型完全匹配(包括函数名称)。应用程序钩子中的代码不应调用正被阻塞的 FreeRTOS-Plus-TCP API
。这样很容易导致死锁。
当应用程序钩子执行时,会借用任务优先级和 IP 任务堆栈。因此,我们建议您保持应用程序钩子的简短性——它可能需要唤醒一些负责执行进一步处理的应用程序任务。
参数:
pxNetworkBuffer
|
包含不受支持的帧的网络缓冲区。
|
返回值:
返回值必须为 eFrameProcessingResult_t
类型。如果要释放帧,则应该返回
eReleaseBuffer,网络堆栈则负责清理。如果返回任何其他内容,那么用户/应用程序必须
通过调用
vReleaseNetworkBufferAndDescriptor() 来释放网络缓冲区。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.