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

internal.h (1713B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * internal.h - printk internal definitions
      4 */
      5#include <linux/percpu.h>
      6
      7#if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL)
      8void __init printk_sysctl_init(void);
      9int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write,
     10			      void *buffer, size_t *lenp, loff_t *ppos);
     11#else
     12#define printk_sysctl_init() do { } while (0)
     13#endif
     14
     15#ifdef CONFIG_PRINTK
     16
     17/* Flags for a single printk record. */
     18enum printk_info_flags {
     19	LOG_NEWLINE	= 2,	/* text ended with a newline */
     20	LOG_CONT	= 8,	/* text is a fragment of a continuation line */
     21};
     22
     23__printf(4, 0)
     24int vprintk_store(int facility, int level,
     25		  const struct dev_printk_info *dev_info,
     26		  const char *fmt, va_list args);
     27
     28__printf(1, 0) int vprintk_default(const char *fmt, va_list args);
     29__printf(1, 0) int vprintk_deferred(const char *fmt, va_list args);
     30
     31bool printk_percpu_data_ready(void);
     32
     33#define printk_safe_enter_irqsave(flags)	\
     34	do {					\
     35		local_irq_save(flags);		\
     36		__printk_safe_enter();		\
     37	} while (0)
     38
     39#define printk_safe_exit_irqrestore(flags)	\
     40	do {					\
     41		__printk_safe_exit();		\
     42		local_irq_restore(flags);	\
     43	} while (0)
     44
     45void defer_console_output(void);
     46
     47u16 printk_parse_prefix(const char *text, int *level,
     48			enum printk_info_flags *flags);
     49#else
     50
     51/*
     52 * In !PRINTK builds we still export console_sem
     53 * semaphore and some of console functions (console_unlock()/etc.), so
     54 * printk-safe must preserve the existing local IRQ guarantees.
     55 */
     56#define printk_safe_enter_irqsave(flags) local_irq_save(flags)
     57#define printk_safe_exit_irqrestore(flags) local_irq_restore(flags)
     58
     59static inline bool printk_percpu_data_ready(void) { return false; }
     60#endif /* CONFIG_PRINTK */