X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Funix-misc.c;h=e73d01a15d611ce6f5b7e3eccb0151f7407dcc14;hb=22ca0d03dbc82c3eb9ccd995aaef3ae924f67b97;hp=2928369d52e579099c54c314623fcb90e99ead10;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vppinfra/unix-misc.c b/src/vppinfra/unix-misc.c index 2928369d52e..e73d01a15d6 100644 --- a/src/vppinfra/unix-misc.c +++ b/src/vppinfra/unix-misc.c @@ -45,8 +45,11 @@ #include #include /* for sprintf */ +__clib_export __thread uword __os_thread_index = 0; +__clib_export __thread uword __os_numa_index = 0; + clib_error_t * -unix_file_n_bytes (char *file, uword * result) +clib_file_n_bytes (char *file, uword * result) { struct stat s; @@ -62,7 +65,7 @@ unix_file_n_bytes (char *file, uword * result) } clib_error_t * -unix_file_read_contents (char *file, u8 * result, uword n_bytes) +clib_file_read_contents (char *file, u8 * result, uword n_bytes) { int fd = -1; uword n_done, n_left; @@ -105,20 +108,20 @@ done: return error; } -clib_error_t * -unix_file_contents (char *file, u8 ** result) +__clib_export clib_error_t * +clib_file_contents (char *file, u8 ** result) { uword n_bytes; clib_error_t *error = 0; u8 *v; - if ((error = unix_file_n_bytes (file, &n_bytes))) + if ((error = clib_file_n_bytes (file, &n_bytes))) return error; v = 0; vec_resize (v, n_bytes); - error = unix_file_read_contents (file, v, n_bytes); + error = clib_file_read_contents (file, v, n_bytes); if (error) vec_free (v); @@ -155,7 +158,7 @@ unix_proc_file_contents (char *file, u8 ** result) if (bytes == 0) { - _vec_len (rv) = pos; + vec_set_len (rv, pos); break; } pos += bytes; @@ -168,7 +171,7 @@ unix_proc_file_contents (char *file, u8 ** result) void os_panic (void) __attribute__ ((weak)); -void +__clib_export void os_panic (void) { abort (); @@ -188,14 +191,14 @@ void os_puts (u8 * string, uword string_length, uword is_error) void os_puts (u8 * string, uword string_length, uword is_error) { - int cpu = os_get_cpu_number (); - int ncpus = os_get_ncpus (); + int cpu = os_get_thread_index (); + int nthreads = os_get_nthreads (); char buf[64]; int fd = is_error ? 2 : 1; struct iovec iovs[2]; int n_iovs = 0; - if (ncpus > 1) + if (nthreads > 1) { snprintf (buf, sizeof (buf), "%d: ", cpu); @@ -212,23 +215,14 @@ os_puts (u8 * string, uword string_length, uword is_error) ; } -void os_out_of_memory (void) __attribute__ ((weak)); -void +__clib_export __clib_weak void os_out_of_memory (void) { os_panic (); } -uword os_get_cpu_number (void) __attribute__ ((weak)); -uword -os_get_cpu_number (void) -{ - return 0; -} - -uword os_get_ncpus (void) __attribute__ ((weak)); -uword -os_get_ncpus (void) +__clib_export __clib_weak uword +os_get_nthreads (void) { return 1; }