libflashprog: Start a new API for chip enumeration

For now, allow to query all chips, their vendor, name and size.

There's a tricky optimization coming up: We don't want to allocate
additional memory when enumerating the chip database. But, we also
want to use the same API interface to access information about de-
tected chips, which requires dynamic memory.  So we have to handle
these distinct cases explicitly.  Where `struct flashprog_chips *`
is used, we set it to the special value `FLASHCHIPS_DB`  to denote
the flash database. For `struct flashprog_chip *` pointers, we add
chip_from_db(), which tells us whether the given pointer is within
the database range.

Change-Id: I7ecc12e1b74ca11f2be1b3472d6e470da44bfef1
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/481
diff --git a/Doxyfile b/Doxyfile
index 5fdf5e8..c0c3528 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -780,8 +780,9 @@
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = libflashprog.c \
-                         libflashprog.h \
+INPUT                  = include/libflashprog.h \
+                         libflashprog.c \
+                         libflashprog/ \
                          flashprog.c \
                          layout.c \
 
@@ -808,7 +809,7 @@
 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
 # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
 
-FILE_PATTERNS          =
+FILE_PATTERNS          = *.c
 
 # The RECURSIVE tag can be used to specify whether or not subdirectories should
 # be searched for input files as well.