/* * This file is part of Cleanflight and Betaflight. * * Cleanflight and Betaflight are free software. You can redistribute * this software and/or modify this software under the terms of the * GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) * any later version. * * Cleanflight and Betaflight are distributed in the hope that they * will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this software. * * If not, see . */ #pragma once // Called to flush the buffer. typedef void (*bufWrite_t)(void *arg, void *data, int count); typedef struct bufWriter_s { bufWrite_t writer; void *arg; uint8_t *data; uint8_t capacity; uint8_t at; } bufWriter_t; // Initialise a block of memory as a buffered writer. void bufWriterInit(bufWriter_t *b, uint8_t *data, int size, bufWrite_t writer, void *p); void bufWriterAppend(bufWriter_t *b, uint8_t ch); void bufWriterFlush(bufWriter_t *b);