+ _opt_register((names), OPT_CB_ARG((cb),0,(show), (arg)), (arg), (desc))
+
+/**
+ * opt_register_early_noarg - register an early option with no arguments
+ * @names: the names of the option eg. "--foo", "-f" or "--foo|-f|--foobar".
+ * @cb: the callback when the option is found.
+ * @arg: the argument to hand to @cb.
+ * @desc: the verbose description of the option (for opt_usage()), or NULL.
+ *
+ * This is the same as opt_register_noarg(), but for opt_early_parse().
+ *
+ * See Also:
+ * opt_register_early_arg(), opt_early_parse()
+ */
+#define opt_register_early_noarg(names, cb, arg, desc) \
+ _opt_register((names), OPT_CB_NOARG((cb), OPT_EARLY, (arg)), \
+ (arg), (desc))
+
+/**
+ * opt_register_early_arg - register an early option with an arguments
+ * @names: the names of the option eg. "--foo", "-f" or "--foo|-f|--foobar".
+ * @cb: the callback when the option is found.
+ * @show: the callback to print the value in get_usage (or NULL)
+ * @arg: the argument to hand to @cb.
+ * @desc: the verbose description of the option (for opt_usage()), or NULL.
+ *
+ * This is the same as opt_register_arg(), but for opt_early_parse().
+ *
+ * See Also:
+ * opt_register_early_noarg(), opt_early_parse()
+ */
+#define opt_register_early_arg(names, cb, show, arg, desc) \
+ _opt_register((names), OPT_CB_ARG((cb), OPT_EARLY, (show),(arg)), \
+ (arg), (desc))