/* * Copyright 2019, Cypress Semiconductor Corporation or a subsidiary of * Cypress Semiconductor Corporation. All Rights Reserved. * * This software, associated documentation and materials ("Software") * is owned by Cypress Semiconductor Corporation, * or one of its subsidiaries ("Cypress") and is protected by and subject to * worldwide patent protection (United States and foreign), * United States copyright laws and international treaty provisions. * Therefore, you may use this Software only as provided in the license * agreement accompanying the software package from which you * obtained this Software ("EULA"). * If no EULA applies, Cypress hereby grants you a personal, non-exclusive, * non-transferable license to copy, modify, and compile the Software * source code solely for use in connection with Cypress's * integrated circuit products. Any reproduction, modification, translation, * compilation, or representation of this Software except as specified * above is prohibited without the express written permission of Cypress. * * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress * reserves the right to make changes to the Software without notice. Cypress * does not assume any liability arising out of the application or use of the * Software or any product or circuit described in the Software. Cypress does * not authorize its products for use in any products where a malfunction or * failure of the Cypress product may reasonably be expected to result in * significant property damage, injury or death ("High Risk Product"). By * including Cypress's product in a High Risk Product, the manufacturer * of such system or application assumes all risk of such use and in doing * so agrees to indemnify Cypress against all liability. */ /** @file * Header for using WWD with no RTOS or network stack * * It is possible to use these WWD without any operating system. To do this, * the user application is required to periodically use the functions in this * file to allow WWD to send and receive data across the SPI/SDIO bus. * */ #ifndef INCLUDED_WWD_POLL_H #define INCLUDED_WWD_POLL_H #include #ifdef __cplusplus extern "C" { #endif /****************************************************** * Function declarations ******************************************************/ /*@-exportlocal@*/ /** Sends the first queued packet * * Checks the queue to determine if there is any packets waiting * to be sent. If there are, then it sends the first one. * * This function is normally used by the WWD Thread, but can be * called periodically by systems which have no RTOS to ensure * packets get sent. * * @return 1 : packet was sent * 0 : no packet sent */ extern int8_t wwd_thread_send_one_packet( void ) /*@modifies internalState @*/; /** Receives a packet if one is waiting * * Checks the wifi chip fifo to determine if there is any packets waiting * to be received. If there are, then it receives the first one, and calls * the callback @ref wwd_sdpcm_process_rx_packet (in wwd_sdpcm.c). * * This function is normally used by the WWD Thread, but can be * called periodically by systems which have no RTOS to ensure * packets get received properly. * * @return 1 : packet was received * 0 : no packet waiting */ extern int8_t wwd_thread_receive_one_packet( void ) /*@modifies internalState @*/; /** Sends and Receives all waiting packets * * Repeatedly calls wwd_thread_send_one_packet and wwd_thread_receive_one_packet * to send and receive packets, until there are no more packets waiting to * be transferred. * * This function is normally used by the WWD Thread, but can be * called periodically by systems which have no RTOS to ensure * packets get send and received properly. * * @return 1 : packet was sent or received * 0 : no packet was sent or received */ extern int8_t wwd_thread_poll_all( void ) /*@modifies internalState@*/; /*@+exportlocal@*/ #ifdef __cplusplus } /* extern "C" */ #endif #endif /* ifndef INCLUDED_WWD_POLL_H */