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

gcc_base.c (1840B)


      1// SPDX-License-Identifier: GPL-2.0
      2
      3#include <linux/export.h>
      4#include <linux/kernel.h>
      5#include <linux/mutex.h>
      6#include "gcov.h"
      7
      8/*
      9 * __gcov_init is called by gcc-generated constructor code for each object
     10 * file compiled with -fprofile-arcs.
     11 */
     12void __gcov_init(struct gcov_info *info)
     13{
     14	static unsigned int gcov_version;
     15
     16	mutex_lock(&gcov_lock);
     17	if (gcov_version == 0) {
     18		gcov_version = gcov_info_version(info);
     19		/*
     20		 * Printing gcc's version magic may prove useful for debugging
     21		 * incompatibility reports.
     22		 */
     23		pr_info("version magic: 0x%x\n", gcov_version);
     24	}
     25	/*
     26	 * Add new profiling data structure to list and inform event
     27	 * listener.
     28	 */
     29	gcov_info_link(info);
     30	if (gcov_events_enabled)
     31		gcov_event(GCOV_ADD, info);
     32	mutex_unlock(&gcov_lock);
     33}
     34EXPORT_SYMBOL(__gcov_init);
     35
     36/*
     37 * These functions may be referenced by gcc-generated profiling code but serve
     38 * no function for kernel profiling.
     39 */
     40void __gcov_flush(void)
     41{
     42	/* Unused. */
     43}
     44EXPORT_SYMBOL(__gcov_flush);
     45
     46void __gcov_merge_add(gcov_type *counters, unsigned int n_counters)
     47{
     48	/* Unused. */
     49}
     50EXPORT_SYMBOL(__gcov_merge_add);
     51
     52void __gcov_merge_single(gcov_type *counters, unsigned int n_counters)
     53{
     54	/* Unused. */
     55}
     56EXPORT_SYMBOL(__gcov_merge_single);
     57
     58void __gcov_merge_delta(gcov_type *counters, unsigned int n_counters)
     59{
     60	/* Unused. */
     61}
     62EXPORT_SYMBOL(__gcov_merge_delta);
     63
     64void __gcov_merge_ior(gcov_type *counters, unsigned int n_counters)
     65{
     66	/* Unused. */
     67}
     68EXPORT_SYMBOL(__gcov_merge_ior);
     69
     70void __gcov_merge_time_profile(gcov_type *counters, unsigned int n_counters)
     71{
     72	/* Unused. */
     73}
     74EXPORT_SYMBOL(__gcov_merge_time_profile);
     75
     76void __gcov_merge_icall_topn(gcov_type *counters, unsigned int n_counters)
     77{
     78	/* Unused. */
     79}
     80EXPORT_SYMBOL(__gcov_merge_icall_topn);
     81
     82void __gcov_exit(void)
     83{
     84	/* Unused. */
     85}
     86EXPORT_SYMBOL(__gcov_exit);