Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/bhnd/tools/nvram_map_gen.awk
Show First 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | if (OUTPUT_FILE == "-") { | ||||
if (OUT_T == OUT_T_HEADER) | if (OUT_T == OUT_T_HEADER) | ||||
OUTPUT_FILE = OUTPUT_FILE ".h" | OUTPUT_FILE = OUTPUT_FILE ".h" | ||||
else | else | ||||
OUTPUT_FILE = OUTPUT_FILE "_data.h" | OUTPUT_FILE = OUTPUT_FILE "_data.h" | ||||
} | } | ||||
# Format Constants | # Format Constants | ||||
FMT["hex"] = "BHND_NVRAM_VFMT_HEX" | FMT["hex"] = "BHND_NVRAM_SFMT_HEX" | ||||
FMT["decimal"] = "BHND_NVRAM_VFMT_DEC" | FMT["decimal"] = "BHND_NVRAM_SFMT_DEC" | ||||
FMT["ccode"] = "BHND_NVRAM_VFMT_CCODE" | FMT["ccode"] = "BHND_NVRAM_SFMT_CCODE" | ||||
FMT["macaddr"] = "BHND_NVRAM_VFMT_MACADDR" | FMT["macaddr"] = "BHND_NVRAM_SFMT_MACADDR" | ||||
FMT["led_dc"] = "BHND_NVRAM_VFMT_LEDDC" | FMT["led_dc"] = "BHND_NVRAM_SFMT_LEDDC" | ||||
# Data Type Constants | # Data Type Constants | ||||
DTYPE["u8"] = "BHND_NVRAM_DT_UINT8" | DTYPE["u8"] = "BHND_NVRAM_TYPE_UINT8" | ||||
DTYPE["u16"] = "BHND_NVRAM_DT_UINT16" | DTYPE["u16"] = "BHND_NVRAM_TYPE_UINT16" | ||||
DTYPE["u32"] = "BHND_NVRAM_DT_UINT32" | DTYPE["u32"] = "BHND_NVRAM_TYPE_UINT32" | ||||
DTYPE["i8"] = "BHND_NVRAM_DT_INT8" | DTYPE["i8"] = "BHND_NVRAM_TYPE_INT8" | ||||
DTYPE["i16"] = "BHND_NVRAM_DT_INT16" | DTYPE["i16"] = "BHND_NVRAM_TYPE_INT16" | ||||
DTYPE["i32"] = "BHND_NVRAM_DT_INT32" | DTYPE["i32"] = "BHND_NVRAM_TYPE_INT32" | ||||
DTYPE["char"] = "BHND_NVRAM_DT_CHAR" | DTYPE["char"] = "BHND_NVRAM_TYPE_CHAR" | ||||
# Default masking for standard types | # Default masking for standard types | ||||
TMASK["u8"] = "0x000000FF" | TMASK["u8"] = "0x000000FF" | ||||
TMASK["u16"] = "0x0000FFFF" | TMASK["u16"] = "0x0000FFFF" | ||||
TMASK["u32"] = "0xFFFFFFFF" | TMASK["u32"] = "0xFFFFFFFF" | ||||
TMASK["i8"] = TMASK["u8"] | TMASK["i8"] = TMASK["u8"] | ||||
TMASK["i16"] = TMASK["u16"] | TMASK["i16"] = TMASK["u16"] | ||||
TMASK["i32"] = TMASK["u32"] | TMASK["i32"] = TMASK["u32"] | ||||
▲ Show 20 Lines • Show All 121 Lines • ▼ Show 20 Lines | for (seg = 0; seg < num_segs; seg++) { | ||||
} | } | ||||
} | } | ||||
} | } | ||||
output_depth-- | output_depth-- | ||||
emit("}, " num_offs_written "},\n") | emit("}, " num_offs_written "},\n") | ||||
} | } | ||||
# emit the bhnd_nvram_var definition for variable name `v` | # emit a bhnd_nvram_vardef for variable name `v` | ||||
function emit_var_defn (v) | function emit_nvram_vardef (v) | ||||
{ | { | ||||
emit(sprintf("{\"%s\", %s, %s, %s, (struct bhnd_sprom_var[]) {\n", | emit(sprintf("{\"%s\", %s, %s, %s, (struct bhnd_sprom_vardefn[]) {\n", | ||||
v suffix, | v suffix, | ||||
DTYPE[vars[v,VAR_BASE_TYPE]], | DTYPE[vars[v,VAR_BASE_TYPE]], | ||||
FMT[vars[v,VAR_FMT]], | FMT[vars[v,VAR_FMT]], | ||||
gen_var_flags(v))) | gen_var_flags(v))) | ||||
output_depth++ | output_depth++ | ||||
for (rev = 0; rev < vars[v,NUM_REVS]; rev++) { | for (rev = 0; rev < vars[v,NUM_REVS]; rev++) { | ||||
revk = subkey(v, REV, rev"") | revk = subkey(v, REV, rev"") | ||||
▲ Show 20 Lines • Show All 151 Lines • ▼ Show 20 Lines | END { | ||||
emit(" * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.\n") | emit(" * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.\n") | ||||
emit(" *\n") | emit(" *\n") | ||||
emit(" * generated from nvram map: " FILENAME "\n") | emit(" * generated from nvram map: " FILENAME "\n") | ||||
emit(" */\n") | emit(" */\n") | ||||
emit("\n") | emit("\n") | ||||
# Emit all variable definitions | # Emit all variable definitions | ||||
if (OUT_T == OUT_T_DATA) { | if (OUT_T == OUT_T_DATA) { | ||||
emit("#include <dev/bhnd/nvram/nvramvar.h>\n") | emit("#include <dev/bhnd/nvram/bhnd_nvram_common.h>\n") | ||||
emit("static const struct bhnd_nvram_var bhnd_nvram_vars[] = "\ | emit("static const struct bhnd_nvram_vardefn "\ | ||||
"{\n") | "bhnd_nvram_vardefs[] = {\n") | ||||
output_depth++ | output_depth++ | ||||
for (i = 0; i < num_output_vars; i++) | for (i = 0; i < num_output_vars; i++) | ||||
emit_var_defn(output_vars[i]) | emit_nvram_vardef(output_vars[i]) | ||||
output_depth-- | output_depth-- | ||||
emit("};\n") | emit("};\n") | ||||
} else if (OUT_T == OUT_T_HEADER) { | } else if (OUT_T == OUT_T_HEADER) { | ||||
for (i = 0; i < num_output_vars; i++) | for (i = 0; i < num_output_vars; i++) | ||||
emit_var_namedef(output_vars[i]) | emit_var_namedef(output_vars[i]) | ||||
} | } | ||||
printf("%u variable records written to %s\n", num_output_vars, | printf("%u variable records written to %s\n", num_output_vars, | ||||
▲ Show 20 Lines • Show All 716 Lines • Show Last 20 Lines |