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

qdio_debug.h (1843B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 *  Copyright IBM Corp. 2008
      4 *
      5 *  Author: Jan Glauber (jang@linux.vnet.ibm.com)
      6 */
      7#ifndef QDIO_DEBUG_H
      8#define QDIO_DEBUG_H
      9
     10#include <asm/debug.h>
     11#include <asm/qdio.h>
     12#include "qdio.h"
     13
     14/* that gives us 15 characters in the text event views */
     15#define QDIO_DBF_LEN	32
     16
     17extern debug_info_t *qdio_dbf_setup;
     18extern debug_info_t *qdio_dbf_error;
     19
     20#define DBF_ERR		3	/* error conditions	*/
     21#define DBF_WARN	4	/* warning conditions	*/
     22#define DBF_INFO	6	/* informational	*/
     23
     24#undef DBF_EVENT
     25#undef DBF_ERROR
     26#undef DBF_DEV_EVENT
     27
     28#define DBF_EVENT(text...) \
     29	do { \
     30		char debug_buffer[QDIO_DBF_LEN]; \
     31		snprintf(debug_buffer, QDIO_DBF_LEN, text); \
     32		debug_text_event(qdio_dbf_setup, DBF_ERR, debug_buffer); \
     33	} while (0)
     34
     35static inline void DBF_HEX(void *addr, int len)
     36{
     37	debug_event(qdio_dbf_setup, DBF_ERR, addr, len);
     38}
     39
     40#define DBF_ERROR(text...) \
     41	do { \
     42		char debug_buffer[QDIO_DBF_LEN]; \
     43		snprintf(debug_buffer, QDIO_DBF_LEN, text); \
     44		debug_text_event(qdio_dbf_error, DBF_ERR, debug_buffer); \
     45	} while (0)
     46
     47static inline void DBF_ERROR_HEX(void *addr, int len)
     48{
     49	debug_event(qdio_dbf_error, DBF_ERR, addr, len);
     50}
     51
     52#define DBF_DEV_EVENT(level, device, text...) \
     53	do { \
     54		char debug_buffer[QDIO_DBF_LEN]; \
     55		if (debug_level_enabled(device->debug_area, level)) { \
     56			snprintf(debug_buffer, QDIO_DBF_LEN, text); \
     57			debug_text_event(device->debug_area, level, debug_buffer); \
     58		} \
     59	} while (0)
     60
     61static inline void DBF_DEV_HEX(struct qdio_irq *dev, void *addr,
     62			       int len, int level)
     63{
     64	debug_event(dev->debug_area, level, addr, len);
     65}
     66
     67int qdio_allocate_dbf(struct qdio_irq *irq_ptr);
     68void qdio_setup_debug_entries(struct qdio_irq *irq_ptr);
     69void qdio_shutdown_debug_entries(struct qdio_irq *irq_ptr);
     70int qdio_debug_init(void);
     71void qdio_debug_exit(void);
     72
     73#endif