cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

x86_msr.c (1215B)


      1// SPDX-License-Identifier: LGPL-2.1
      2/*
      3 * trace/beauty/x86_msr.c
      4 *
      5 *  Copyright (C) 2019, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
      6 */
      7
      8#include "trace/beauty/beauty.h"
      9
     10#include "trace/beauty/generated/x86_arch_MSRs_array.c"
     11
     12static DEFINE_STRARRAY(x86_MSRs, "MSR_");
     13static DEFINE_STRARRAY_OFFSET(x86_64_specific_MSRs, "MSR_", x86_64_specific_MSRs_offset);
     14static DEFINE_STRARRAY_OFFSET(x86_AMD_V_KVM_MSRs, "MSR_", x86_AMD_V_KVM_MSRs_offset);
     15
     16static struct strarray *x86_MSRs_tables[] = {
     17	&strarray__x86_MSRs,
     18	&strarray__x86_64_specific_MSRs,
     19	&strarray__x86_AMD_V_KVM_MSRs,
     20};
     21
     22static DEFINE_STRARRAYS(x86_MSRs_tables);
     23
     24static size_t x86_MSR__scnprintf(unsigned long msr, char *bf, size_t size, bool show_prefix)
     25{
     26	return strarrays__scnprintf(&strarrays__x86_MSRs_tables, bf, size, "%#x", show_prefix, msr);
     27}
     28
     29size_t syscall_arg__scnprintf_x86_MSR(char *bf, size_t size, struct syscall_arg *arg)
     30{
     31	unsigned long flags = arg->val;
     32
     33	return x86_MSR__scnprintf(flags, bf, size, arg->show_string_prefix);
     34}
     35
     36bool syscall_arg__strtoul_x86_MSR(char *bf, size_t size, struct syscall_arg *arg __maybe_unused, u64 *ret)
     37{
     38	return strarrays__strtoul(&strarrays__x86_MSRs_tables, bf, size, ret);
     39}