Files
mckernel/lib/include/ihk/debug.h
Takayuki Okamoto 9989f41fd3 add arm64 support
- add arm64 dependent codes with GICv3 and SVE support
- fix bugs based on architecture separation requests
2017-09-05 15:06:27 +09:00

53 lines
1.3 KiB
C

/* debug.h COPYRIGHT FUJITSU LIMITED 2015-2016 */
/**
* \file debug.h
* License details are found in the file LICENSE.
* \brief
* Declare types and functions to print debug message (kmsg).
* \author Taku Shimosawa <shimosawa@is.s.u-tokyo.ac.jp> \par
* Copyright (C) 2011 - 2012 Taku Shimosawa
*/
/*
* HISTORY
*/
#ifndef IHK_DEBUG_H
#define IHK_DEBUG_H
#include <arch-lock.h>
#include <ihk/memconst.h>
#include <ihk/kmsg.h>
#ifdef POSTK_DEBUG_ARCH_DEP_9 /* want to add a static assertion */
/* Force a compilation error if condition is false */
#define STATIC_ASSERT(cond) _STATIC_ASSERT(cond, __LINE__)
#define _STATIC_ASSERT(cond, line) __STATIC_ASSERT(cond, line)
#define __STATIC_ASSERT(cond, line) \
static void __static_assert_ ## line (void) { \
STATIC_ASSERT_LOCAL(cond); \
}
/* Force a compilation error if condition is false */
#define STATIC_ASSERT_LOCAL(cond) ((void)sizeof(struct { int:-!!!(cond); }))
#endif /* POSTK_DEBUG_ARCH_DEP_9 */
struct ihk_kmsg_buf {
int tail;
int len;
int head;
int mode;
ihk_spinlock_t lock;
char str[IHK_KMSG_SIZE - sizeof(int) * 4 - sizeof(ihk_spinlock_t)];
};
extern int kprintf(const char *format, ...);
extern unsigned long kprintf_lock(void);
extern void kprintf_unlock(unsigned long irqflags);
extern int __kprintf(const char *format, ...);
extern void panic(const char *msg);
#endif