Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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