Lines Matching +full:se +full:- +full:pos

8  * Usage: kallsyms [--all-symbols] [--absolute-percpu]
9 * [--base-relative] [--lto-clang] in.map > out.S
59 "__per_cpu_start", "__per_cpu_end", -1ULL, 0
78 fprintf(stderr, "Usage: kallsyms [--all-symbols] [--absolute-percpu] " in usage()
79 "[--base-relative] [--lto-clang] in.map > out.S\n"); in usage()
85 return (char *)s->sym + 1; in sym_name()
114 if (strcmp(sym, ar->start_sym) == 0) { in check_symbol_range()
115 ar->start = addr; in check_symbol_range()
117 } else if (strcmp(sym, ar->end_sym) == 0) { in check_symbol_range()
118 ar->end = addr; in check_symbol_range()
142 if ((*buf)[readlen - 1] == '\n') in read_symbol()
143 (*buf)[readlen - 1] = 0; in read_symbol()
182 sym->addr = addr; in read_symbol()
183 sym->len = len; in read_symbol()
184 sym->sym[0] = type; in read_symbol()
186 sym->percpu_absolute = 0; in read_symbol()
200 if (s->addr >= ar->start && s->addr <= ar->end) in symbol_in_range()
211 /* if --all-symbols is not specified, then symbols outside the text in symbol_valid()
223 if ((s->addr == text_range_text->end && in symbol_valid()
224 strcmp(name, text_range_text->end_sym)) || in symbol_valid()
225 (s->addr == text_range_inittext->end && in symbol_valid()
226 strcmp(name, text_range_inittext->end_sym))) in symbol_valid()
236 unsigned int i, pos; in shrink_table() local
238 pos = 0; in shrink_table()
241 if (pos != i) in shrink_table()
242 table[pos] = table[i]; in shrink_table()
243 pos++; in shrink_table()
248 table_cnt = pos; in shrink_table()
275 sym->start_pos = table_cnt; in read_map()
305 printf("\tPTR\t_text + %#llx\n", addr - _text); in output_address()
307 printf("\tPTR\t_text - %#llx\n", _text - addr); in output_address()
330 len--; in expand_symbol()
339 return s->percpu_absolute; in symbol_absolute()
348 * ASCII[0-9] = 30,39 in cleanup_symbol_name()
349 * ASCII[A-Z] = 41,5a in cleanup_symbol_name()
351 * ASCII[a-z] = 61,7a in cleanup_symbol_name()
369 if (sa->addr > sb->addr) in compare_names()
371 else if (sa->addr < sb->addr) in compare_names()
372 return -1; in compare_names()
375 return (int)(sa->seq - sb->seq); in compare_names()
422 table[i]->seq = i; in write_src()
425 if (table[i]->len == 0) { in write_src()
431 /* Only lengths that fit in up-to-two-byte ULEB128 are supported. */ in write_src()
432 if (table[i]->len > 0x3FFF) { in write_src()
439 if (table[i]->len <= 0x7F) { in write_src()
441 printf("\t.byte 0x%02x", table[i]->len); in write_src()
442 off += table[i]->len + 1; in write_src()
446 (table[i]->len & 0x7F) | 0x80, in write_src()
447 (table[i]->len >> 7) & 0x7F); in write_src()
448 off += table[i]->len + 2; in write_src()
450 for (k = 0; k < table[i]->len; k++) in write_src()
451 printf(", 0x%02x", table[i]->sym[k]); in write_src()
461 expand_symbol(table[i]->sym, table[i]->len, buf); in write_src()
462 strcpy((char *)table[i]->sym, buf); in write_src()
497 * non-relocatable fixed offsets that will be fixed in write_src()
505 offset = table[i]->addr - relative_base; in write_src()
508 offset = table[i]->addr; in write_src()
511 offset = relative_base - table[i]->addr - 1; in write_src()
518 table[i]->addr); in write_src()
521 printf("\t.long\t%#x /* %s */\n", (int)offset, table[i]->sym); in write_src()
523 output_address(table[i]->addr); in write_src()
525 printf("\tPTR\t%#llx\n", table[i]->addr); in write_src()
538 cleanup_symbol_name((char *)table[i]->sym); in write_src()
544 (unsigned char)(table[i]->seq >> 16), in write_src()
545 (unsigned char)(table[i]->seq >> 8), in write_src()
546 (unsigned char)(table[i]->seq >> 0)); in write_src()
558 for (i = 0; i < len - 1; i++) in learn_symbol()
567 for (i = 0; i < len - 1; i++) in forget_symbol()
568 token_profit[ symbol[i] + (symbol[i + 1] << 8) ]--; in forget_symbol()
577 learn_symbol(table[i]->sym, table[i]->len); in build_initial_token_table()
585 for (i = 0; i < len - 1; i++) { in find_token()
601 len = table[i]->len; in compress_symbols()
602 p1 = table[i]->sym; in compress_symbols()
609 forget_symbol(table[i]->sym, len); in compress_symbols()
616 size -= (p2 - p1); in compress_symbols()
619 len--; in compress_symbols()
628 table[i]->len = len; in compress_symbols()
631 learn_symbol(table[i]->sym, len); in compress_symbols()
640 bestprofit=-10000; in find_best_token()
659 for (i = 255; i >= 0; i--) { in optimize_result()
687 for (j = 0; j < table[i]->len; j++) { in insert_real_symbols_in_table()
688 c = table[i]->sym[j]; in insert_real_symbols_in_table()
705 static int may_be_linker_script_provide_symbol(const struct sym_entry *se) in may_be_linker_script_provide_symbol() argument
707 const char *symbol = sym_name(se); in may_be_linker_script_provide_symbol()
708 int len = se->len - 1; in may_be_linker_script_provide_symbol()
729 if (!memcmp(symbol + len - 6, "_start", 6)) in may_be_linker_script_provide_symbol()
733 if (!memcmp(symbol + len - 4, "_end", 4)) in may_be_linker_script_provide_symbol()
746 if (sa->addr > sb->addr) in compare_symbols()
748 if (sa->addr < sb->addr) in compare_symbols()
749 return -1; in compare_symbols()
752 wa = (sa->sym[0] == 'w') || (sa->sym[0] == 'W'); in compare_symbols()
753 wb = (sb->sym[0] == 'w') || (sb->sym[0] == 'W'); in compare_symbols()
755 return wa - wb; in compare_symbols()
761 return wa - wb; in compare_symbols()
767 return wa - wb; in compare_symbols()
770 return sa->start_pos - sb->start_pos; in compare_symbols()
789 table[i]->sym[0] = 'A'; in make_percpus_absolute()
790 table[i]->percpu_absolute = 1; in make_percpus_absolute()
794 /* find the minimum non-absolute symbol address */
803 * Take the first non-absolute symbol value. in record_relative_base()
805 relative_base = table[i]->addr; in record_relative_base()
814 {"all-symbols", no_argument, &all_symbols, 1}, in main()
815 {"absolute-percpu", no_argument, &absolute_percpu, 1}, in main()
816 {"base-relative", no_argument, &base_relative, 1}, in main()
817 {"lto-clang", no_argument, &lto_clang, 1}, in main()
823 if (c == -1) in main()