diff --git a/src/app/config/confparse.h b/src/app/config/confparse.h
index 405200d692..baf60f07cd 100644
--- a/src/app/config/confparse.h
+++ b/src/app/config/confparse.h
@@ -51,10 +51,28 @@ typedef struct config_deprecation_t {
**/
#define PLURAL(tok) { #tok, #tok "s", 0, 0 }
-/** Type of a callback to validate whether a given configuration is
- * well-formed and consistent. See options_trial_assign() for documentation
- * of arguments. */
-typedef int (*validate_fn_t)(void*,void*,void*,int,char**);
+/**
+ * Type of a callback to validate whether a given configuration is
+ * well-formed and consistent.
+ *
+ * The configuration to validate is passed as newval. The previous
+ * configuration, if any, is provided in oldval. The
+ * default_val argument receives a configuration object initialized
+ * with default values for all its fields. The from_setconf argument
+ * is true iff the input comes from a SETCONF controller command.
+ *
+ * On success, return 0. On failure, set *msg_out to a newly allocated
+ * error message, and return -1.
+ *
+ * REFACTORING NOTE: Currently, this callback type is only used from inside
+ * config_dump(); later in our refactoring, it will be cleaned up and used
+ * more generally.
+ */
+typedef int (*validate_fn_t)(void *oldval,
+ void *newval,
+ void *default_val,
+ int from_setconf,
+ char **msg_out);
struct config_mgr_t;