buflib: Add CONFIG_BUFLIB_BACKEND for selecting a buflib backend

Defaults to the normal "mempool" backend, which is currently the
only implementation.

Change-Id: I56d034a6e0f5edc90c39526d1551945eec6ca336
This commit is contained in:
Aidan MacDonald 2023-01-02 19:49:56 +00:00
parent 680261fbb7
commit f995c26de9
9 changed files with 48 additions and 5 deletions

View file

@ -100,7 +100,7 @@ int plugin_open(const char *plugin, const char *parameter);
#include "list.h" #include "list.h"
#include "tree.h" #include "tree.h"
#include "color_picker.h" #include "color_picker.h"
#include "buflib_mempool.h" #include "buflib.h"
#include "buffering.h" #include "buffering.h"
#include "tagcache.h" #include "tagcache.h"
#include "viewport.h" #include "viewport.h"

View file

@ -4,7 +4,9 @@
ata_idle_notify.c ata_idle_notify.c
events.c events.c
backlight.c backlight.c
#if CONFIG_BUFLIB_BACKEND == BUFLIB_BACKEND_MEMPOOL
buflib_mempool.c buflib_mempool.c
#endif
core_alloc.c core_alloc.c
general.c general.c
powermgmt.c powermgmt.c

View file

@ -29,7 +29,7 @@
#include <stdlib.h> /* for abs() */ #include <stdlib.h> /* for abs() */
#include <stdio.h> /* for snprintf() */ #include <stdio.h> /* for snprintf() */
#include <stddef.h> /* for ptrdiff_t */ #include <stddef.h> /* for ptrdiff_t */
#include "buflib_mempool.h" #include "buflib.h"
#include "string-extra.h" /* strmemccpy() */ #include "string-extra.h" /* strmemccpy() */
#include "debug.h" #include "debug.h"
#include "panic.h" #include "panic.h"

View file

@ -3,7 +3,7 @@
#include <string.h> #include <string.h>
#include "system.h" #include "system.h"
#include "core_alloc.h" #include "core_alloc.h"
#include "buflib_mempool.h" #include "buflib.h"
/* not static so it can be discovered by core_get_data() */ /* not static so it can be discovered by core_get_data() */
struct buflib_context core_ctx; struct buflib_context core_ctx;

View file

@ -380,6 +380,9 @@ Lyre prototype 1 */
#define IMX233_FREESCALE (1 << 0) /* Freescale I.MX233 nonstandard two-level MBR */ #define IMX233_FREESCALE (1 << 0) /* Freescale I.MX233 nonstandard two-level MBR */
#define IMX233_CREATIVE (1 << 1) /* Creative MBLK windowing */ #define IMX233_CREATIVE (1 << 1) /* Creative MBLK windowing */
/* CONFIG_BUFLIB_BACKEND */
#define BUFLIB_BACKEND_MEMPOOL 0 /* Default memory pool backed buflib */
/* now go and pick yours */ /* now go and pick yours */
#if defined(IRIVER_H100) #if defined(IRIVER_H100)
#include "config/iriverh100.h" #include "config/iriverh100.h"
@ -606,6 +609,10 @@ Lyre prototype 1 */
#undef CONFIG_STORAGE #undef CONFIG_STORAGE
#endif #endif
#ifndef CONFIG_BUFLIB_BACKEND
# define CONFIG_BUFLIB_BACKEND BUFLIB_BACKEND_MEMPOOL
#endif
#ifdef APPLICATION #ifdef APPLICATION
#define CONFIG_CPU 0 #define CONFIG_CPU 0
#endif #endif

30
firmware/include/buflib.h Normal file
View file

@ -0,0 +1,30 @@
/**************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2023 Aidan MacDonald
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _BUFLIB_H_
#define _BUFLIB_H_
#include "config.h"
#if CONFIG_BUFLIB_BACKEND == BUFLIB_BACKEND_MEMPOOL
#include "buflib_mempool.h"
#endif
#endif /* _BUFLIB_H_ */

View file

@ -26,6 +26,10 @@
#ifndef _BUFLIB_MEMPOOL_H_ #ifndef _BUFLIB_MEMPOOL_H_
#define _BUFLIB_MEMPOOL_H_ #define _BUFLIB_MEMPOOL_H_
#ifndef _BUFLIB_H_
# error "include buflib.h instead"
#endif
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>

View file

@ -24,7 +24,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include "config.h" #include "config.h"
#include "buflib_mempool.h" #include "buflib.h"
#define CHUNK_ALLOC_INVALID ((size_t)-1) #define CHUNK_ALLOC_INVALID ((size_t)-1)

View file

@ -4,7 +4,7 @@
#include <string.h> #include <string.h>
#include <stdbool.h> #include <stdbool.h>
#include "config.h" #include "config.h"
#include "buflib_mempool.h" #include "buflib.h"
#include "chunk_alloc.h" #include "chunk_alloc.h"
/* All functions below are wrappers for functions in buflib.h, except /* All functions below are wrappers for functions in buflib.h, except