TwiceAsNice  2019-02-18
Classes | Macros | Typedefs | Functions | Variables
config.c File Reference
#include <ctype.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include "hpdi32_api.h"
#include "main.h"
#include "util_string.h"
Include dependency graph for config.c:

Classes

struct  var_hex_t
 
struct  var_item_t
 
struct  var_list_t
 
struct  parm_hex_t
 
struct  parm_item_t
 
struct  parm_list_t
 
struct  _cmd_t
 

Macros

#define VERBOSE_OFF   0
 
#define VERBOSE_ON   1
 
#define VERBOSE_VERY   2
 

Typedefs

typedef struct _cmd_t cmd_t
 

Functions

static U32 _list_commands (void *device, long line, const char *value, const cmd_t *cmd, U32 *set, unsigned long *get)
 
static U32 _parm_hex (void *device, long line, const char *value, const cmd_t *cmd, U32 *set, unsigned long *get)
 
static U32 _parm_list (void *device, long line, const char *value, const cmd_t *cmd, U32 *set, unsigned long *get)
 
static U32 _var_hex (void *device, long line, const char *value, const cmd_t *cmd, U32 *set, unsigned long *get)
 
static U32 _var_list (void *device, long line, const char *value, const cmd_t *cmd, U32 *set, unsigned long *get)
 
static U32 _parse_u32 (long line, const char *command, const char *value, U32 *get)
 
static U32 _read_line (FILE *file, char *buf, size_t size, int *end)
 
static char * _skip_ws (char *buf)
 
static void _trunk_ws (char *buf)
 
static void _parse_key_value (char *buf, char **key, char **eq, char **value)
 
static const cmd_t_command_locate (const char *cmd)
 
U32 read_config_file (void *device, const char *name)
 

Variables

static U32 _list = 0
 
static U32 _verbose = 0
 
static const parm_hex_t _almost_empty_hex
 
static const parm_hex_t _almost_full_hex
 
static const var_hex_t _block_count_hex
 
static const var_hex_t _block_samples_hex
 
static const parm_item_t _data_size_items []
 
static const parm_list_t _data_size_list
 
static const var_hex_t _io_clock_hex
 
static const parm_item_t _mode_items []
 
static const parm_list_t _mode_list
 
static const parm_item_t _status_valid_mirror_items []
 
static const parm_list_t _status_valid_mirror_list
 
static const parm_item_t _frame_valid_items []
 
static const parm_list_t _frame_valid_list
 
static const parm_item_t _line_valid_items []
 
static const parm_list_t _line_valid_list
 
static const parm_hex_t _line_valid_off_count_hex
 
static const parm_hex_t _line_valid_on_count_hex
 
static const var_item_t _list_items []
 
static const var_list_t _list_list
 
static const parm_item_t _single_cycle_items []
 
static const parm_list_t _single_cycle_list
 
static const parm_item_t _status_valid_items []
 
static const parm_list_t _status_valid_list
 
static const parm_hex_t _status_valid_count_hex
 
static const parm_hex_t _timeout_hex
 
static const parm_item_t _rx_ready_items []
 
static const parm_list_t _rx_ready_list
 
static const parm_hex_t _tx_clock_divider_hex
 
static const parm_item_t _tx_ready_items []
 
static const parm_list_t _tx_ready_list
 
static const parm_item_t _tx_enabled_items []
 
static const parm_list_t _tx_enabled_list
 
static const parm_item_t _rx_enabled_items []
 
static const parm_list_t _rx_enabled_list
 
static const var_item_t _verbose_items []
 
static const var_list_t _verbose_list
 
static const cmd_t _commands []
 

Macro Definition Documentation

◆ VERBOSE_OFF

#define VERBOSE_OFF   0

◆ VERBOSE_ON

#define VERBOSE_ON   1

◆ VERBOSE_VERY

#define VERBOSE_VERY   2

Typedef Documentation

◆ cmd_t

typedef struct _cmd_t cmd_t

Function Documentation

◆ _command_locate()

static const cmd_t* _command_locate ( const char *  cmd)
static

◆ _list_commands()

static U32 _list_commands ( void *  device,
long  line,
const char *  value,
const cmd_t cmd,
U32 *  set,
unsigned long get 
)
static

◆ _parm_hex()

static U32 _parm_hex ( void *  device,
long  line,
const char *  value,
const cmd_t cmd,
U32 *  set,
unsigned long get 
)
static

◆ _parm_list()

static U32 _parm_list ( void *  device,
long  line,
const char *  value,
const cmd_t cmd,
U32 *  set,
unsigned long get 
)
static

◆ _parse_key_value()

static void _parse_key_value ( char *  buf,
char **  key,
char **  eq,
char **  value 
)
static

◆ _parse_u32()

static U32 _parse_u32 ( long  line,
const char *  command,
const char *  value,
U32 *  get 
)
static

◆ _read_line()

static U32 _read_line ( FILE *  file,
char *  buf,
size_t  size,
int *  end 
)
static

◆ _skip_ws()

static char* _skip_ws ( char *  buf)
static

◆ _trunk_ws()

static void _trunk_ws ( char *  buf)
static

◆ _var_hex()

static U32 _var_hex ( void *  device,
long  line,
const char *  value,
const cmd_t cmd,
U32 *  set,
unsigned long get 
)
static

◆ _var_list()

static U32 _var_list ( void *  device,
long  line,
const char *  value,
const cmd_t cmd,
U32 *  set,
unsigned long get 
)
static

◆ read_config_file()

U32 read_config_file ( void *  device,
const char *  name 
)

Variable Documentation

◆ _almost_empty_hex

const parm_hex_t _almost_empty_hex
static
Initial value:
=
{
}
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387
#define HPDI32_WHICH_AE
Definition: hpdi32_api.h:390
#define HPDI32_FIFO_ALMOST_LEVEL
Definition: hpdi32_api.h:687

◆ _almost_full_hex

const parm_hex_t _almost_full_hex
static
Initial value:
=
{
}
#define HPDI32_WHICH_AF
Definition: hpdi32_api.h:391
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387
#define HPDI32_FIFO_ALMOST_LEVEL
Definition: hpdi32_api.h:687

◆ _block_count_hex

const var_hex_t _block_count_hex
static
Initial value:
=
{
}
U32 block_count
Definition: main.c:42

◆ _block_samples_hex

const var_hex_t _block_samples_hex
static
Initial value:
=
{
}
U32 block_samples
Definition: main.c:43

◆ _commands

const cmd_t _commands[]
static

◆ _data_size_items

const parm_item_t _data_size_items[]
static
Initial value:
=
{
{
"8",
},
{
"16",
},
{
"32",
}
}
#define HPDI32_IO_DATA_SIZE_16_BITS
Definition: hpdi32.h:309
#define HPDI32_IO_DATA_SIZE
Definition: hpdi32_api.h:748
#define HPDI32_IO_DATA_SIZE_32_BITS
Definition: hpdi32.h:310
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387
#define HPDI32_IO_DATA_SIZE_8_BITS
Definition: hpdi32.h:308

◆ _data_size_list

const parm_list_t _data_size_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _data_size_items[]
Definition: config.c:133

◆ _frame_valid_items

const parm_item_t _frame_valid_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489
#define HPDI32_WHICH_FRAME_VALID_
Definition: hpdi32_api.h:421

◆ _frame_valid_list

const parm_list_t _frame_valid_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _frame_valid_items[]
Definition: config.c:224

◆ _io_clock_hex

const var_hex_t _io_clock_hex
static
Initial value:
=
{
}
U32 io_clock
Definition: main.c:44

◆ _line_valid_items

const parm_item_t _line_valid_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_WHICH_LINE_VALID_
Definition: hpdi32_api.h:422
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489

◆ _line_valid_list

const parm_list_t _line_valid_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _line_valid_items[]
Definition: config.c:260

◆ _line_valid_off_count_hex

const parm_hex_t _line_valid_off_count_hex
static
Initial value:
=
{
0,
}
#define HPDI32_TX_LINE_VALID_OFF_COUNT
Definition: hpdi32_api.h:1746

◆ _line_valid_on_count_hex

const parm_hex_t _line_valid_on_count_hex
static
Initial value:
=
{
0,
}
#define HPDI32_TX_LINE_VALID_ON_COUNT
Definition: hpdi32_api.h:1747

◆ _list

U32 _list = 0
static

◆ _list_items

const var_item_t _list_items[]
static
Initial value:
=
{
{
"No",
0
},
{
"Yes",
1
}
}

◆ _list_list

const var_list_t _list_list
static
Initial value:
=
{
}
static const var_item_t _list_items[]
Definition: config.c:312
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static U32 _list
Definition: config.c:98

◆ _mode_items

const parm_item_t _mode_items[]
static
Initial value:
=
{
{
"PIO",
},
{
"DMA",
},
{
"DMDMA",
}
}
#define HPDI32_IO_MODE_DMA
Definition: hpdi32_api.h:882
#define HPDI32_IO_MODE_DMDMA
Definition: hpdi32_api.h:883
#define HPDI32_IO_MODE
Definition: hpdi32_api.h:752
#define HPDI32_IO_MODE_PIO
Definition: hpdi32_api.h:881
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387

◆ _mode_list

const parm_list_t _mode_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _mode_items[]
Definition: config.c:170

◆ _rx_enabled_items

const parm_item_t _rx_enabled_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_WHICH_RX_ENABLED_
Definition: hpdi32_api.h:427
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489

◆ _rx_enabled_list

const parm_list_t _rx_enabled_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _rx_enabled_items[]
Definition: config.c:526

◆ _rx_ready_items

const parm_item_t _rx_ready_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_WHICH_RX_READY_
Definition: hpdi32_api.h:424
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489

◆ _rx_ready_list

const parm_list_t _rx_ready_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _rx_ready_items[]
Definition: config.c:409

◆ _single_cycle_items

const parm_item_t _single_cycle_items[]
static
Initial value:
=
{
{
"Absent",
},
{
"Present",
}
}
#define HPDI32_IO_SINGLE_CYCLE_PRESENT
Definition: hpdi32_api.h:953
#define HPDI32_IO_SINGLE_CYCLE
Definition: hpdi32_api.h:757
#define HPDI32_IO_SINGLE_CYCLE_ABSENT
Definition: hpdi32_api.h:952
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387

◆ _single_cycle_list

const parm_list_t _single_cycle_list
static
Initial value:
=
{
}
static const parm_item_t _single_cycle_items[]
Definition: config.c:333
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115

◆ _status_valid_count_hex

const parm_hex_t _status_valid_count_hex
static
Initial value:
=
{
0,
}
#define HPDI32_TX_STATUS_VALID_COUNT
Definition: hpdi32_api.h:1752

◆ _status_valid_items

const parm_item_t _status_valid_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_WHICH_STATUS_VALID_
Definition: hpdi32_api.h:423
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489

◆ _status_valid_list

const parm_list_t _status_valid_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _status_valid_items[]
Definition: config.c:357

◆ _status_valid_mirror_items

const parm_item_t _status_valid_mirror_items[]
static
Initial value:
=
{
{
"No",
},
{
"Yes",
}
}
#define HPDI32_TX_STATUS_VALID_MIRROR_ENABLE
Definition: hpdi32_api.h:1848
#define HPDI32_TX_STATUS_VALID_MIRROR
Definition: hpdi32_api.h:1753
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387
#define HPDI32_TX_STATUS_VALID_MIRROR_DISABLE
Definition: hpdi32_api.h:1847

◆ _status_valid_mirror_list

const parm_list_t _status_valid_mirror_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _status_valid_mirror_items[]
Definition: config.c:200

◆ _timeout_hex

const parm_hex_t _timeout_hex
static
Initial value:
=
{
}
#define HPDI32_IO_TIMEOUT
Definition: hpdi32_api.h:756
#define HPDI32_WHICH_TX_RX
Definition: hpdi32_api.h:387

◆ _tx_clock_divider_hex

const parm_hex_t _tx_clock_divider_hex
static
Initial value:
=
{
0,
}
#define HPDI32_TX_CLOCK_DIVIDER
Definition: hpdi32_api.h:1743

◆ _tx_enabled_items

const parm_item_t _tx_enabled_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489
#define HPDI32_WHICH_TX_ENABLED_
Definition: hpdi32_api.h:426

◆ _tx_enabled_list

const parm_list_t _tx_enabled_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _tx_enabled_items[]
Definition: config.c:490

◆ _tx_ready_items

const parm_item_t _tx_ready_items[]
static
Initial value:
=
{
{
"Low",
},
{
"High",
},
{
"In",
},
{
"FlowControl",
}
}
#define HPDI32_WHICH_TX_READY_
Definition: hpdi32_api.h:425
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_HI
Definition: hpdi32_api.h:492
#define HPDI32_CABLE_COMMAND_MODE
Definition: hpdi32_api.h:482
#define HPDI32_CABLE_COMMAND_MODE_GPIO_IN
Definition: hpdi32_api.h:490
#define HPDI32_CABLE_COMMAND_MODE_GPIO_OUT_LOW
Definition: hpdi32_api.h:491
#define HPDI32_CABLE_COMMAND_MODE_FLOW_CONTROL
Definition: hpdi32_api.h:489

◆ _tx_ready_list

const parm_list_t _tx_ready_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const parm_item_t _tx_ready_items[]
Definition: config.c:454

◆ _verbose

U32 _verbose = 0
static

◆ _verbose_items

const var_item_t _verbose_items[]
static
Initial value:
=
{
{
"No",
},
{
"Yes",
},
{
"Very",
}
}
#define VERBOSE_OFF
Definition: config.c:26
#define VERBOSE_VERY
Definition: config.c:28
#define VERBOSE_ON
Definition: config.c:27

◆ _verbose_list

const var_list_t _verbose_list
static
Initial value:
=
{
}
#define ARRAY_ELEMENTS(a)
Definition: gsc_main.h:115
static const var_item_t _verbose_items[]
Definition: config.c:562
static U32 _verbose
Definition: config.c:99