1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lupyuen-LoRaMac-node-nuttx

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
fifo.c 1.5 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
Miguel Luis Отправлено 7 лет назад 17d02be
/*!
* \file fifo.h
*
* \brief FIFO buffer implementation
*
* \copyright Revised BSD License, see section \ref LICENSE.
*
* \code
* ______ _
* / _____) _ | |
* ( (____ _____ ____ _| |_ _____ ____| |__
* \____ \| ___ | (_ _) ___ |/ ___) _ \
* _____) ) ____| | | || |_| ____( (___| | | |
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
* (C)2013-2017 Semtech
*
* \endcode
*
* \author Miguel Luis ( Semtech )
*
* \author Gregory Cristian ( Semtech )
*/
#include "fifo.h"
static uint16_t FifoNext( Fifo_t *fifo, uint16_t index )
{
return ( index + 1 ) % fifo->Size;
}
void FifoInit( Fifo_t *fifo, uint8_t *buffer, uint16_t size )
{
fifo->Begin = 0;
fifo->End = 0;
fifo->Data = buffer;
fifo->Size = size;
}
void FifoPush( Fifo_t *fifo, uint8_t data )
{
fifo->End = FifoNext( fifo, fifo->End );
fifo->Data[fifo->End] = data;
}
uint8_t FifoPop( Fifo_t *fifo )
{
uint8_t data = fifo->Data[FifoNext( fifo, fifo->Begin )];
fifo->Begin = FifoNext( fifo, fifo->Begin );
return data;
}
void FifoFlush( Fifo_t *fifo )
{
fifo->Begin = 0;
fifo->End = 0;
}
bool IsFifoEmpty( Fifo_t *fifo )
{
return ( fifo->Begin == fifo->End );
}
bool IsFifoFull( Fifo_t *fifo )
{
return ( FifoNext( fifo, fifo->End ) == fifo->Begin );
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/lupyuen-LoRaMac-node-nuttx.git
git@gitlife.ru:oschina-mirror/lupyuen-LoRaMac-node-nuttx.git
oschina-mirror
lupyuen-LoRaMac-node-nuttx
lupyuen-LoRaMac-node-nuttx
v4.5.0