1ac930a55SSrikanth Yalavarthi /* SPDX-License-Identifier: BSD-3-Clause 2ac930a55SSrikanth Yalavarthi * Copyright (c) 2022 Marvell. 3ac930a55SSrikanth Yalavarthi */ 4ac930a55SSrikanth Yalavarthi 5ac930a55SSrikanth Yalavarthi #ifndef ML_OPTIONS_H 6ac930a55SSrikanth Yalavarthi #define ML_OPTIONS_H 7ac930a55SSrikanth Yalavarthi 8ac930a55SSrikanth Yalavarthi #include <stdbool.h> 9ac930a55SSrikanth Yalavarthi #include <stdint.h> 10ac930a55SSrikanth Yalavarthi 11ac930a55SSrikanth Yalavarthi #define ML_TEST_NAME_MAX_LEN 32 12bb38d854SSrikanth Yalavarthi #define ML_TEST_MAX_MODELS 8 13ac930a55SSrikanth Yalavarthi 14ac930a55SSrikanth Yalavarthi /* Options names */ 15ac930a55SSrikanth Yalavarthi #define ML_TEST ("test") 16ac930a55SSrikanth Yalavarthi #define ML_DEVICE_ID ("dev_id") 17ac930a55SSrikanth Yalavarthi #define ML_SOCKET_ID ("socket_id") 18f6661e6dSSrikanth Yalavarthi #define ML_MODELS ("models") 19bbd272edSSrikanth Yalavarthi #define ML_FILELIST ("filelist") 20*671e9c20SAnup Prabhu #define ML_QUANTIZED_IO ("quantized_io") 21bbd272edSSrikanth Yalavarthi #define ML_REPETITIONS ("repetitions") 2239890f07SSrikanth Yalavarthi #define ML_BURST_SIZE ("burst_size") 23c0e87165SSrikanth Yalavarthi #define ML_QUEUE_PAIRS ("queue_pairs") 24c0e87165SSrikanth Yalavarthi #define ML_QUEUE_SIZE ("queue_size") 25da679339SSrikanth Yalavarthi #define ML_TOLERANCE ("tolerance") 265a82bc33SSrikanth Yalavarthi #define ML_STATS ("stats") 27ac930a55SSrikanth Yalavarthi #define ML_DEBUG ("debug") 28ac930a55SSrikanth Yalavarthi #define ML_HELP ("help") 29ac930a55SSrikanth Yalavarthi 30f6661e6dSSrikanth Yalavarthi struct ml_filelist { 31f6661e6dSSrikanth Yalavarthi char model[PATH_MAX]; 32bbd272edSSrikanth Yalavarthi char input[PATH_MAX]; 33bbd272edSSrikanth Yalavarthi char output[PATH_MAX]; 34da679339SSrikanth Yalavarthi char reference[PATH_MAX]; 35f6661e6dSSrikanth Yalavarthi }; 36f6661e6dSSrikanth Yalavarthi 37ac930a55SSrikanth Yalavarthi struct ml_options { 38ac930a55SSrikanth Yalavarthi char test_name[ML_TEST_NAME_MAX_LEN]; 39ac930a55SSrikanth Yalavarthi int16_t dev_id; 40ac930a55SSrikanth Yalavarthi int socket_id; 41f6661e6dSSrikanth Yalavarthi struct ml_filelist filelist[ML_TEST_MAX_MODELS]; 42bb38d854SSrikanth Yalavarthi uint8_t nb_filelist; 43bbd272edSSrikanth Yalavarthi uint64_t repetitions; 4439890f07SSrikanth Yalavarthi uint16_t burst_size; 45c0e87165SSrikanth Yalavarthi uint16_t queue_pairs; 46c0e87165SSrikanth Yalavarthi uint16_t queue_size; 47da679339SSrikanth Yalavarthi float tolerance; 485a82bc33SSrikanth Yalavarthi bool stats; 49ac930a55SSrikanth Yalavarthi bool debug; 50*671e9c20SAnup Prabhu bool quantized_io; 51ac930a55SSrikanth Yalavarthi }; 52ac930a55SSrikanth Yalavarthi 53ac930a55SSrikanth Yalavarthi void ml_options_default(struct ml_options *opt); 54ac930a55SSrikanth Yalavarthi int ml_options_parse(struct ml_options *opt, int argc, char **argv); 55ac930a55SSrikanth Yalavarthi void ml_options_dump(struct ml_options *opt); 56ac930a55SSrikanth Yalavarthi 57ac930a55SSrikanth Yalavarthi #endif /* ML_OPTIONS_H */ 58