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

hpidebug.h (2424B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*****************************************************************************
      3
      4    AudioScience HPI driver
      5    Copyright (C) 1997-2011  AudioScience Inc. <support@audioscience.com>
      6
      7
      8Debug macros.
      9
     10*****************************************************************************/
     11
     12#ifndef _HPIDEBUG_H
     13#define _HPIDEBUG_H
     14
     15#include "hpi_internal.h"
     16
     17/* Define debugging levels.  */
     18enum { HPI_DEBUG_LEVEL_ERROR = 0,	/* always log errors */
     19	HPI_DEBUG_LEVEL_WARNING = 1,
     20	HPI_DEBUG_LEVEL_NOTICE = 2,
     21	HPI_DEBUG_LEVEL_INFO = 3,
     22	HPI_DEBUG_LEVEL_DEBUG = 4,
     23	HPI_DEBUG_LEVEL_VERBOSE = 5	/* same printk level as DEBUG */
     24};
     25
     26#define HPI_DEBUG_LEVEL_DEFAULT HPI_DEBUG_LEVEL_NOTICE
     27
     28/* an OS can define an extra flag string that is appended to
     29   the start of each message, eg see linux kernel hpios.h */
     30
     31#ifdef SOURCEFILE_NAME
     32#define FILE_LINE  SOURCEFILE_NAME ":" __stringify(__LINE__) " "
     33#else
     34#define FILE_LINE  __FILE__ ":" __stringify(__LINE__) " "
     35#endif
     36
     37#define HPI_DEBUG_ASSERT(expression) \
     38	do { \
     39		if (!(expression)) { \
     40			printk(KERN_ERR  FILE_LINE \
     41				"ASSERT " __stringify(expression)); \
     42		} \
     43	} while (0)
     44
     45#define HPI_DEBUG_LOG(level, ...) \
     46	do { \
     47		if (hpi_debug_level >= HPI_DEBUG_LEVEL_##level) { \
     48			printk(HPI_DEBUG_FLAG_##level \
     49			FILE_LINE  __VA_ARGS__); \
     50		} \
     51	} while (0)
     52
     53void hpi_debug_init(void);
     54int hpi_debug_level_set(int level);
     55int hpi_debug_level_get(void);
     56/* needed by Linux driver for dynamic debug level changes */
     57extern int hpi_debug_level;
     58
     59void hpi_debug_message(struct hpi_message *phm, char *sz_fileline);
     60
     61void hpi_debug_data(u16 *pdata, u32 len);
     62
     63#define HPI_DEBUG_DATA(pdata, len) \
     64	do { \
     65		if (hpi_debug_level >= HPI_DEBUG_LEVEL_VERBOSE) \
     66			hpi_debug_data(pdata, len); \
     67	} while (0)
     68
     69#define HPI_DEBUG_MESSAGE(level, phm) \
     70	do { \
     71		if (hpi_debug_level >= HPI_DEBUG_LEVEL_##level) { \
     72			hpi_debug_message(phm, HPI_DEBUG_FLAG_##level \
     73				FILE_LINE __stringify(level)); \
     74		} \
     75	} while (0)
     76
     77#define HPI_DEBUG_RESPONSE(phr) \
     78	do { \
     79		if (((hpi_debug_level >= HPI_DEBUG_LEVEL_DEBUG) && \
     80			(phr->error)) ||\
     81		(hpi_debug_level >= HPI_DEBUG_LEVEL_VERBOSE)) \
     82			printk(KERN_DEBUG "HPI_RES%d,%d,%d\n", \
     83				phr->version, phr->error, phr->specific_error); \
     84	} while (0)
     85
     86#ifndef compile_time_assert
     87#define compile_time_assert(cond, msg) \
     88    typedef char msg[(cond) ? 1 : -1]
     89#endif
     90
     91#endif				/* _HPIDEBUG_H_  */