resolve stricter warnings

In order to convert this repository to Meson, we need to make it
compile under `warning_level=3`.  Fix a number of warning classes
across the repository or disable them.

Some fixes are:

* Add missing header files.
* Fully initialize structs as necessary.
* Add `__attribute__((unused))` on parameters as necessary.
* Fix comparisons between signed and unsigned.
* Fix printf specifiers as necessary.
* Avoid case-fallthrough.
* Remove if conditions which are always true.

Some warnings would require extensive code changes, due to their
pervasive use, and so are disabled at a per-file level:
* `-Wpointer-arith`
* `-Wunused-result`

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If8992b9108f12b39f796ed090ba29868c9f3c627
diff --git a/control_dbus.c b/control_dbus.c
index 4fb9e33..f463d69 100644
--- a/control_dbus.c
+++ b/control_dbus.c
@@ -13,7 +13,7 @@
 typedef int (*control_action)(struct mbox_context *context);
 
 static int control_dbus_directive(sd_bus_message *m, void *userdata,
-					sd_bus_error *ret_error,
+					sd_bus_error *ret_error __attribute__((unused)),
 					control_action action)
 {
 	struct mbox_context *context;
@@ -22,7 +22,7 @@
 
 	if (!action) {
 		MSG_ERR("No action provided\n");
-		return -EINVAL; 
+		return -EINVAL;
 	}
 
 	context = (struct mbox_context *) userdata;
@@ -79,7 +79,7 @@
 }
 
 static int control_dbus_resume(sd_bus_message *m, void *userdata,
-				     sd_bus_error *ret_error)
+			       sd_bus_error *ret_error __attribute__((unused)))
 {
 	struct mbox_context *context;
 	sd_bus_message *n;
@@ -112,7 +112,7 @@
 }
 
 static int control_dbus_set_backend(sd_bus_message *m, void *userdata,
-				    sd_bus_error *ret_error)
+				    sd_bus_error *ret_error __attribute__((unused)))
 {
 	struct mbox_context *context;
 	struct backend backend;
@@ -197,10 +197,12 @@
 	return rc;
 }
 
-static int control_dbus_get_u8(sd_bus *bus, const char *path,
-			       const char *interface, const char *property,
+static int control_dbus_get_u8(sd_bus *bus __attribute__((unused)),
+			       const char *path,
+			       const char *interface __attribute__((unused)),
+			       const char *property,
 			       sd_bus_message *reply, void *userdata,
-			       sd_bus_error *ret_error)
+			       sd_bus_error *ret_error __attribute__((unused)))
 {
 	struct mbox_context *context = userdata;
 	uint8_t value;