52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
#ifndef E502_ETH_CONFIG_H
|
|
#define E502_ETH_CONFIG_H
|
|
|
|
#define E502_ETHCONFIG_MAC_ADDR_SIZE 6
|
|
#define E502_ETHCONFIG_INSTANCE_NAME_SIZE 64
|
|
#define E502_ETHCONFIG_PASSWD_SIZE 32
|
|
|
|
|
|
|
|
#define E502_IPV4_ADDR_SIZE 4
|
|
|
|
typedef enum {
|
|
E502_ETH_FLAGS_IFACE_ENABLED = 0x0001,
|
|
E502_ETH_FLAGS_AUTO_IP = 0x0002,
|
|
E502_ETH_FLAGS_USER_MAC = 0x0004,
|
|
E502_ETH_FLAGS_ADDR_ESTABLISHED = 0x0008, /* адрес, выделенный DHCP-сервером, проверен */
|
|
E502_ETH_FLAGS_AUTO_IP_STATE_MASK = E502_ETH_FLAGS_ADDR_ESTABLISHED,
|
|
} t_e502_eth_flags;
|
|
|
|
|
|
typedef struct {
|
|
uint8_t addr[E502_IPV4_ADDR_SIZE];
|
|
uint8_t mask[E502_IPV4_ADDR_SIZE];
|
|
uint8_t gate[E502_IPV4_ADDR_SIZE];
|
|
} t_e502_ipv4_config;
|
|
|
|
typedef struct {
|
|
uint32_t format;
|
|
uint32_t flags;
|
|
char inst_name[E502_ETHCONFIG_INSTANCE_NAME_SIZE];
|
|
uint8_t mac[E502_ETHCONFIG_MAC_ADDR_SIZE];
|
|
t_e502_ipv4_config ipv4;
|
|
uint16_t tcp_cmd_port;
|
|
uint16_t tcp_data_port;
|
|
} t_e502_eth_config;
|
|
|
|
typedef enum {
|
|
E502_ETH_CONFIG_FLAGS_SET_NEW_PASSWD = 0x0001
|
|
} t_e502_eth_config_flags;
|
|
|
|
typedef struct {
|
|
char passwd[E502_ETHCONFIG_PASSWD_SIZE];
|
|
char new_passwd[E502_ETHCONFIG_PASSWD_SIZE];
|
|
t_e502_eth_config cfg;
|
|
} t_e502_eth_set_config_params;
|
|
|
|
#define E502_ETHCONFIG_SET_HDR_SIZE offsetof(t_e502_eth_set_config_params, cfg)
|
|
|
|
|
|
#endif // E502_ETH_CONFIG_H
|
|
|