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-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * internal.h - printk internal definitions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #include <linux/percpu.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #ifdef CONFIG_PRINTK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #define PRINTK_SAFE_CONTEXT_MASK	0x007ffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define PRINTK_NMI_DIRECT_CONTEXT_MASK	0x008000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define PRINTK_NMI_CONTEXT_MASK		0xff0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define PRINTK_NMI_CONTEXT_OFFSET	0x010000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) extern raw_spinlock_t logbuf_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) __printf(4, 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) int vprintk_store(int facility, int level,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 		  const struct dev_printk_info *dev_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 		  const char *fmt, va_list args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) __printf(1, 0) int vprintk_default(const char *fmt, va_list args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __printf(1, 0) int vprintk_deferred(const char *fmt, va_list args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __printf(1, 0) int vprintk_func(const char *fmt, va_list args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) void __printk_safe_enter(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) void __printk_safe_exit(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) void printk_safe_init(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) bool printk_percpu_data_ready(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define printk_safe_enter_irqsave(flags)	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	do {					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 		local_irq_save(flags);		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 		__printk_safe_enter();		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define printk_safe_exit_irqrestore(flags)	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	do {					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 		__printk_safe_exit();		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 		local_irq_restore(flags);	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define printk_safe_enter_irq()		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	do {					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 		local_irq_disable();		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 		__printk_safe_enter();		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define printk_safe_exit_irq()			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	do {					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 		__printk_safe_exit();		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 		local_irq_enable();		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) void defer_console_output(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) __printf(1, 0) int vprintk_func(const char *fmt, va_list args) { return 0; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)  * In !PRINTK builds we still export logbuf_lock spin_lock, console_sem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)  * semaphore and some of console functions (console_unlock()/etc.), so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)  * printk-safe must preserve the existing local IRQ guarantees.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #define printk_safe_enter_irqsave(flags) local_irq_save(flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #define printk_safe_exit_irqrestore(flags) local_irq_restore(flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define printk_safe_enter_irq() local_irq_disable()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #define printk_safe_exit_irq() local_irq_enable()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) static inline void printk_safe_init(void) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) static inline bool printk_percpu_data_ready(void) { return false; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #endif /* CONFIG_PRINTK */