Add infrastructure to probe per bus

Add some infrastructure around per-bus probing functions.  Each function
is provided a private parameter, e.g. the expected length of an ID. This
will allow us to implement probing functions that are only called as of-
ten as necessary. The results will be stored in the `registered_master`
structure, to be compared to database entries later.

The probe_buses() wrapper can be used for chip entries, and allows us to
transition the existing probing functions one by one. Once all functions
have been ported, probe_flash() can be adapted as well and the wrapper
will become obsolete.

Change-Id: I6e82b6d61df50234096ac39acab58a4014203933
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/74899
diff --git a/include/programmer.h b/include/programmer.h
index 5cef491..46b50f1 100644
--- a/include/programmer.h
+++ b/include/programmer.h
@@ -474,6 +474,11 @@
 struct registered_master {
 	size_t max_rom_decode;
 	enum chipbustype buses_supported;
+
+	struct bus_probing probing;
+	struct found_id *found_ids;
+	bool probed;
+
 	union {
 		struct master_common common;
 		struct par_master par;