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) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2)  * @file arch/alpha/oprofile/op_impl.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * @remark Copyright 2002 OProfile authors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * @remark Read the file COPYING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * @author Richard Henderson <rth@twiddle.net>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #ifndef OP_IMPL_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define OP_IMPL_H 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /* Per-counter configuration as set via oprofilefs.  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) struct op_counter_config {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	unsigned long enabled;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	unsigned long event;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	unsigned long count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	/* Dummies because I am too lazy to hack the userspace tools.  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	unsigned long kernel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	unsigned long user;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	unsigned long unit_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /* System-wide configuration as set via oprofilefs.  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct op_system_config {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	unsigned long enable_pal;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	unsigned long enable_kernel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	unsigned long enable_user;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) /* Cached values for the various performance monitoring registers.  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) struct op_register_config {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	unsigned long enable;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	unsigned long mux_select;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	unsigned long proc_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	unsigned long freq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	unsigned long reset_values;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	unsigned long need_reset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) /* Per-architecture configuration and hooks.  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) struct op_axp_model {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	void (*reg_setup) (struct op_register_config *,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 			   struct op_counter_config *,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 			   struct op_system_config *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	void (*cpu_setup) (void *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	void (*reset_ctr) (struct op_register_config *, unsigned long);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	void (*handle_interrupt) (unsigned long, struct pt_regs *,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 				  struct op_counter_config *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	char *cpu_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	unsigned char num_counters;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	unsigned char can_set_proc_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #endif