Lines Matching defs:kcfg
581 } kcfg;
1858 switch (ext->kcfg.type) {
1861 pr_warn("extern (kcfg) '%s': value '%c' implies tristate or char type\n",
1882 pr_warn("extern (kcfg) '%s': value '%c' implies bool, tristate, or char type\n",
1895 if (ext->kcfg.type != KCFG_CHAR_ARR) {
1896 pr_warn("extern (kcfg) '%s': value '%s' implies char array type\n",
1903 pr_warn("extern (kcfg) '%s': invalid string config '%s'\n",
1910 if (len >= ext->kcfg.sz) {
1911 pr_warn("extern (kcfg) '%s': long string '%s' of (%zu bytes) truncated to %d bytes\n",
1912 ext->name, value, len, ext->kcfg.sz - 1);
1913 len = ext->kcfg.sz - 1;
1942 int bit_sz = ext->kcfg.sz * 8;
1944 if (ext->kcfg.sz == 8)
1959 if (ext->kcfg.is_signed)
1968 if (ext->kcfg.type != KCFG_INT && ext->kcfg.type != KCFG_CHAR &&
1969 ext->kcfg.type != KCFG_BOOL) {
1970 pr_warn("extern (kcfg) '%s': value '%llu' implies integer, char, or boolean type\n",
1974 if (ext->kcfg.type == KCFG_BOOL && value > 1) {
1975 pr_warn("extern (kcfg) '%s': value '%llu' isn't boolean compatible\n",
1981 pr_warn("extern (kcfg) '%s': value '%llu' doesn't fit in %d bytes\n",
1982 ext->name, (unsigned long long)value, ext->kcfg.sz);
1985 switch (ext->kcfg.sz) {
2039 ext_val = data + ext->kcfg.data_off;
2053 pr_warn("extern (kcfg) '%s': value '%s' isn't a valid integer\n", ext->name, value);
2056 if (ext->kcfg.type != KCFG_INT && ext->kcfg.type != KCFG_CHAR) {
2057 pr_warn("extern (kcfg) '%s': value '%s' implies integer type\n", ext->name, value);
2065 pr_debug("extern (kcfg) '%s': set to %s\n", ext->name, value);
2149 map_sz = last_ext->kcfg.data_off + last_ext->kcfg.sz;
4081 if (a->kcfg.align != b->kcfg.align)
4082 return a->kcfg.align > b->kcfg.align ? -1 : 1;
4084 if (a->kcfg.sz != b->kcfg.sz)
4085 return a->kcfg.sz < b->kcfg.sz ? -1 : 1;
4238 ext->kcfg.sz = btf__resolve_size(obj->btf, t->type);
4239 if (ext->kcfg.sz <= 0) {
4240 pr_warn("failed to resolve size of extern (kcfg) '%s': %d\n",
4241 ext_name, ext->kcfg.sz);
4242 return ext->kcfg.sz;
4244 ext->kcfg.align = btf__align_of(obj->btf, t->type);
4245 if (ext->kcfg.align <= 0) {
4246 pr_warn("failed to determine alignment of extern (kcfg) '%s': %d\n",
4247 ext_name, ext->kcfg.align);
4250 ext->kcfg.type = find_kcfg_type(obj->btf, t->type,
4251 &ext->kcfg.is_signed);
4252 if (ext->kcfg.type == KCFG_UNKNOWN) {
4253 pr_warn("extern (kcfg) '%s': type is unsupported\n", ext_name);
4271 /* sort externs by type, for kcfg ones also by (align, size, name) */
4343 /* for kcfg externs calculate their offsets within a .kconfig map */
4350 ext->kcfg.data_off = roundup(off, ext->kcfg.align);
4351 off = ext->kcfg.data_off + ext->kcfg.sz;
4352 pr_debug("extern (kcfg) #%d: symbol %d, off %u, name %s\n",
4353 i, ext->sym_idx, ext->kcfg.data_off, ext->name);
4369 vs->offset = ext->kcfg.data_off;
6414 insn[1].imm = ext->kcfg.data_off;
8248 void *ext_ptr = kcfg_data + ext->kcfg.data_off;
8257 /* Virtual kcfg externs are customly handled by libbpf */
8261 pr_warn("extern (kcfg) '%s': failed to get kernel version\n", ext->name);
8276 pr_warn("extern (kcfg) '%s': unrecognized virtual extern\n", ext->name);
8283 pr_debug("extern (kcfg) '%s': set to 0x%llx\n",