Commit | Line | Data |
---|---|---|
b790b554 NK |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright (c) 2019, Vladimir Oltean <olteanv@gmail.com> | |
8aa9ebcc VO |
3 | */ |
4 | #ifndef _SJA1105_DYNAMIC_CONFIG_H | |
5 | #define _SJA1105_DYNAMIC_CONFIG_H | |
6 | ||
7 | #include "sja1105.h" | |
8 | #include <linux/packing.h> | |
9 | ||
90c96cca VO |
10 | /* Special index that can be used for sja1105_dynamic_config_read */ |
11 | #define SJA1105_SEARCH -1 | |
12 | ||
31b31120 | 13 | struct sja1105_dyn_cmd; |
8aa9ebcc VO |
14 | |
15 | struct sja1105_dynamic_table_ops { | |
16 | /* This returns size_t just to keep same prototype as the | |
17 | * static config ops, of which we are reusing some functions. | |
18 | */ | |
19 | size_t (*entry_packing)(void *buf, void *entry_ptr, enum packing_op op); | |
20 | void (*cmd_packing)(void *buf, struct sja1105_dyn_cmd *cmd, | |
21 | enum packing_op op); | |
22 | size_t max_entry_count; | |
23 | size_t packed_size; | |
24 | u64 addr; | |
25 | u8 access; | |
26 | }; | |
27 | ||
28 | struct sja1105_mgmt_entry { | |
29 | u64 tsreg; | |
30 | u64 takets; | |
31 | u64 macaddr; | |
32 | u64 destports; | |
33 | u64 enfport; | |
34 | u64 index; | |
35 | }; | |
36 | ||
37 | extern struct sja1105_dynamic_table_ops sja1105et_dyn_ops[BLK_IDX_MAX_DYN]; | |
38 | extern struct sja1105_dynamic_table_ops sja1105pqrs_dyn_ops[BLK_IDX_MAX_DYN]; | |
39 | ||
40 | #endif |