@@ -54,10 +54,10 @@ enum switchtec_fw_type check_and_print_fw_image(int img_fd,
5454
5555#define UART_HELP_TEXT " * a UART path (/dev/ttyUSB0)\n"
5656
57- #define DEVICE_OPTION_BASIC (extra_text , handler ) \
57+ #define DEVICE_OPTION_BASIC (extra_text , handler , type ) \
5858 { \
5959 "device", .cfg_type=CFG_CUSTOM, .value_addr=&cfg.dev, \
60- .argument_type=required_positional , \
60+ .argument_type=(type) , \
6161 .custom_handler=handler, \
6262 .complete="/dev/switchtec*", \
6363 .env="SWITCHTEC_DEV", \
@@ -69,9 +69,11 @@ enum switchtec_fw_type check_and_print_fw_image(int img_fd,
6969 extra_text \
7070 }
7171
72- #define DEVICE_OPTION_MFG DEVICE_OPTION_BASIC(, mfg_handler)
72+ #define DEVICE_OPTION_MFG DEVICE_OPTION_BASIC(, mfg_handler, \
73+ required_positional)
7374
74- #define DEVICE_OPTION DEVICE_OPTION_BASIC(UART_HELP_TEXT, switchtec_handler), \
75+ #define __DEVICE_OPTION (type ) \
76+ DEVICE_OPTION_BASIC(UART_HELP_TEXT, switchtec_handler, (type)), \
7577 { \
7678 "pax", 'x', .cfg_type=CFG_CUSTOM, \
7779 .value_addr=&cfg.dev, \
@@ -82,4 +84,7 @@ enum switchtec_fw_type check_and_print_fw_image(int img_fd,
8284 "Switchtec PAX devices" \
8385 }
8486
87+ #define DEVICE_OPTION __DEVICE_OPTION(required_positional)
88+ #define DEVICE_OPTION_OPTIONAL __DEVICE_OPTION(optional_positional)
89+
8590#endif
0 commit comments