Lines Matching refs:kcfg
568 } kcfg;
1761 switch (ext->kcfg.type) {
1764 pr_warn("extern (kcfg) '%s': value '%c' implies tristate or char type\n",
1785 pr_warn("extern (kcfg) '%s': value '%c' implies bool, tristate, or char type\n",
1798 if (ext->kcfg.type != KCFG_CHAR_ARR) {
1799 pr_warn("extern (kcfg) '%s': value '%s' implies char array type\n",
1806 pr_warn("extern (kcfg) '%s': invalid string config '%s'\n",
1813 if (len >= ext->kcfg.sz) {
1814 pr_warn("extern (kcfg) '%s': long string '%s' of (%zu bytes) truncated to %d bytes\n",
1815 ext->name, value, len, ext->kcfg.sz - 1);
1816 len = ext->kcfg.sz - 1;
1845 int bit_sz = ext->kcfg.sz * 8;
1847 if (ext->kcfg.sz == 8)
1862 if (ext->kcfg.is_signed)
1871 if (ext->kcfg.type != KCFG_INT && ext->kcfg.type != KCFG_CHAR &&
1872 ext->kcfg.type != KCFG_BOOL) {
1873 pr_warn("extern (kcfg) '%s': value '%llu' implies integer, char, or boolean type\n",
1877 if (ext->kcfg.type == KCFG_BOOL && value > 1) {
1878 pr_warn("extern (kcfg) '%s': value '%llu' isn't boolean compatible\n",
1884 pr_warn("extern (kcfg) '%s': value '%llu' doesn't fit in %d bytes\n",
1885 ext->name, (unsigned long long)value, ext->kcfg.sz);
1888 switch (ext->kcfg.sz) {
1942 ext_val = data + ext->kcfg.data_off;
1956 pr_warn("extern (kcfg) '%s': value '%s' isn't a valid integer\n", ext->name, value);
1959 if (ext->kcfg.type != KCFG_INT && ext->kcfg.type != KCFG_CHAR) {
1960 pr_warn("extern (kcfg) '%s': value '%s' implies integer type\n", ext->name, value);
1968 pr_debug("extern (kcfg) '%s': set to %s\n", ext->name, value);
2052 map_sz = last_ext->kcfg.data_off + last_ext->kcfg.sz;
3706 if (a->kcfg.align != b->kcfg.align)
3707 return a->kcfg.align > b->kcfg.align ? -1 : 1;
3709 if (a->kcfg.sz != b->kcfg.sz)
3710 return a->kcfg.sz < b->kcfg.sz ? -1 : 1;
3854 ext->kcfg.sz = btf__resolve_size(obj->btf, t->type);
3855 if (ext->kcfg.sz <= 0) {
3856 pr_warn("failed to resolve size of extern (kcfg) '%s': %d\n",
3857 ext_name, ext->kcfg.sz);
3858 return ext->kcfg.sz;
3860 ext->kcfg.align = btf__align_of(obj->btf, t->type);
3861 if (ext->kcfg.align <= 0) {
3862 pr_warn("failed to determine alignment of extern (kcfg) '%s': %d\n",
3863 ext_name, ext->kcfg.align);
3866 ext->kcfg.type = find_kcfg_type(obj->btf, t->type,
3867 &ext->kcfg.is_signed);
3868 if (ext->kcfg.type == KCFG_UNKNOWN) {
3869 pr_warn("extern (kcfg) '%s': type is unsupported\n", ext_name);
3887 /* sort externs by type, for kcfg ones also by (align, size, name) */
3959 /* for kcfg externs calculate their offsets within a .kconfig map */
3966 ext->kcfg.data_off = roundup(off, ext->kcfg.align);
3967 off = ext->kcfg.data_off + ext->kcfg.sz;
3968 pr_debug("extern (kcfg) #%d: symbol %d, off %u, name %s\n",
3969 i, ext->sym_idx, ext->kcfg.data_off, ext->name);
3985 vs->offset = ext->kcfg.data_off;
6009 insn[1].imm = ext->kcfg.data_off;
7803 void *ext_ptr = kcfg_data + ext->kcfg.data_off;
7812 /* Virtual kcfg externs are customly handled by libbpf */
7816 pr_warn("extern (kcfg) '%s': failed to get kernel version\n", ext->name);
7831 pr_warn("extern (kcfg) '%s': unrecognized virtual extern\n", ext->name);
7838 pr_debug("extern (kcfg) '%s': set to 0x%llx\n",