tcp: avoid fr segments less than mss if possible
[vpp.git] / src / vppinfra / elf_clib.c
index ea63a16..d4d511e 100644 (file)
@@ -94,7 +94,7 @@ path_search (char *file)
 
   result = 0;
   if (i < vec_len (ps.path))
-    result = (char *) format (0, "%s/%s%c", ps.path[i], file);
+    result = (char *) format (0, "%s/%s%c", ps.path[i], file, 0);
 
   path_search_free (&ps);
 
@@ -259,7 +259,7 @@ add_section (struct dl_phdr_info *info, size_t size, void *opaque)
 
 static clib_elf_main_t clib_elf_main;
 
-void
+__clib_export void
 clib_elf_main_init (char *exec_path)
 {
   clib_elf_main_t *cem = &clib_elf_main;
@@ -319,20 +319,33 @@ symbol_by_address_or_name (char *by_name,
   return 0;
 }
 
-uword
-clib_elf_symbol_by_name (char *by_name, clib_elf_symbol_t * s)
+__clib_export uword
+clib_elf_symbol_by_name (char *by_name, clib_elf_symbol_t *s)
 {
   return symbol_by_address_or_name (by_name, /* by_address */ 0, s);
 }
 
-uword
-clib_elf_symbol_by_address (uword by_address, clib_elf_symbol_t * s)
+__clib_export uword
+clib_elf_symbol_by_address (uword by_address, clib_elf_symbol_t *s)
 {
   return symbol_by_address_or_name ( /* by_name */ 0, by_address, s);
 }
 
-u8 *
-format_clib_elf_symbol (u8 * s, va_list * args)
+__clib_export const char *
+clib_elf_symbol_name (clib_elf_symbol_t *s)
+{
+  clib_elf_main_t *cem = &clib_elf_main;
+  elf_main_t *em;
+  elf_symbol_table_t *t;
+
+  em = vec_elt_at_index (cem->elf_mains, s->elf_main_index);
+  t = vec_elt_at_index (em->symbol_tables, s->symbol_table_index);
+
+  return (const char *) elf_symbol_name (t, &s->symbol);
+}
+
+__clib_export u8 *
+format_clib_elf_symbol (u8 *s, va_list *args)
 {
   clib_elf_main_t *cem = &clib_elf_main;
   clib_elf_symbol_t *sym = va_arg (*args, clib_elf_symbol_t *);
@@ -351,7 +364,7 @@ format_clib_elf_symbol (u8 * s, va_list * args)
     }
 }
 
-u8 *
+__clib_export u8 *
 format_clib_elf_symbol_with_address (u8 * s, va_list * args)
 {
   uword address = va_arg (*args, uword);