X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fcpu.c;h=045d1f727f4fd234b7f091e974194320a086ddf6;hb=9f4e5d8e512e1d41b8735c1227282d713f50466d;hp=9ed8e8025f8e6b13164ea434f86dbba14aa8acba;hpb=38e0413b2a7bf39a18045e6c6f528655f8354652;p=vpp.git diff --git a/src/vppinfra/cpu.c b/src/vppinfra/cpu.c index 9ed8e8025f8..045d1f727f4 100644 --- a/src/vppinfra/cpu.c +++ b/src/vppinfra/cpu.c @@ -71,6 +71,10 @@ _(0x41, 0xd07, "ARM", "Cortex-A57", 0) \ _(0x41, 0xd08, "ARM", "Cortex-A72", 0) \ _(0x41, 0xd09, "ARM", "Cortex-A73", 0) \ + _(0x41, 0xd0a, "ARM", "Cortex-A75", 0) \ + _(0x41, 0xd0b, "ARM", "Cortex-A76", 0) \ + _(0x41, 0xd0c, "ARM", "Neoverse-N1", 0) \ + _(0x41, 0xd4a, "ARM", "Neoverse-E1", 0) \ _(0x43, 0x0a1, "Marvell", "THUNDERX CN88XX", 0) \ _(0x43, 0x0a2, "Marvell", "OCTEON TX CN81XX", 0) \ _(0x43, 0x0a3, "Marvell", "OCTEON TX CN83XX", 0) \ @@ -78,7 +82,7 @@ _(0x43, 0x0b1, "Marvell", "OCTEON TX2 CN98XX", 1) \ _(0x43, 0x0b2, "Marvell", "OCTEON TX2 CN96XX", 1) -u8 * +__clib_export u8 * format_cpu_uarch (u8 * s, va_list * args) { #if __x86_64__ @@ -142,7 +146,7 @@ format(s, "[0x%x] %s ([0x%02x] %s) stepping 0x%x", f, a, m, c, stepping); #endif } -u8 * +__clib_export u8 * format_cpu_model_name (u8 * s, va_list * args) { #if __x86_64__ @@ -198,7 +202,7 @@ flag_skip_prefix (char const *flag, const char *pfx, int len) return flag; } -u8 * +__clib_export u8 * format_cpu_flags (u8 * s, va_list * args) { #if defined(__x86_64__) @@ -218,7 +222,33 @@ format_cpu_flags (u8 * s, va_list * args) #endif } +__clib_export u32 +clib_get_current_cpu_id () +{ + unsigned cpu, node; + syscall (__NR_getcpu, &cpu, &node, 0); + return cpu; +} + +__clib_export u32 +clib_get_current_numa_node () +{ + unsigned cpu, node; + syscall (__NR_getcpu, &cpu, &node, 0); + return node; +} +__clib_export u8 * +format_march_variant (u8 *s, va_list *args) +{ + clib_march_variant_type_t t = va_arg (*args, clib_march_variant_type_t); + char *variants[] = { [0] = "default", +#define _(s, n) [CLIB_MARCH_VARIANT_TYPE_##s] = n, + foreach_march_variant +#undef _ + }; + return format (s, "%s", variants[t]); +} /* * fd.io coding-style-patch-verification: ON