Mercurial > hg > Game > Atoc
comparison include/hvcalls/common.h @ 0:42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Sep 2009 13:44:18 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:42f240cc4bc6 |
---|---|
1 /** | |
2 * hvcalls/common.h | |
3 * ハイパーバイザコール詰め合わせの共通部分 | |
4 */ | |
5 | |
6 #ifndef HVCALLS__COMMON_H | |
7 #define HVCALLS__COMMON_H | |
8 | |
9 #include <linux/kernel.h> | |
10 #include <asm/types.h> | |
11 | |
12 | |
13 // 64 ビット値のフォーマット指定子を定義 | |
14 #if defined __powerpc64__ | |
15 # define HVCALLS_S64DFMT "%ld" // signed | |
16 # define HVCALLS_U64UFMT "%lu" // unsigned (dec) | |
17 # define HVCALLS_U64XFMT "%016lx" // unsigned (hex) | |
18 #elif defined __GNUC__ | |
19 # define HVCALLS_S64DFMT "%lld" // signed | |
20 # define HVCALLS_U64UFMT "%llu" // unsigned (dec) | |
21 # define HVCALLS_U64XFMT "%016llx" // unsigned (hex) | |
22 #else | |
23 # error Can't determine 64bit format string. | |
24 #endif /*defined __GNUC__, defined __powerpc64__*/ | |
25 | |
26 // 整数型のエイリアスを定義 | |
27 typedef __u64 HVC_u64; | |
28 | |
29 | |
30 // IS_DEBUG_MODE が定義されている場合は | |
31 // HVCALLS_DO_PRINT_INFO も定義されたものとする | |
32 #ifdef IS_DEBUG_MODE | |
33 # ifndef HVCALLS_DO_PRINT_INFO | |
34 # define HVCALLS_DO_PRINT_INFO | |
35 # endif | |
36 #endif /*IS_DEBUG_MODE*/ | |
37 | |
38 #ifdef HVCALLS_DO_PRINT_INFO | |
39 // プリフィックス/サフィックスを定義 | |
40 # ifdef MODULE_NAME | |
41 # define HVCALLS_PREFIX MODULE_NAME " [hvcall] " | |
42 # else | |
43 # define HVCALLS_PREFIX "[hvcall] " | |
44 # endif | |
45 # define HVCALLS_SUFFIX // お好みで... | |
46 // 情報出力用マクロの定義 | |
47 # define HVCALLS_PRINT_INFO(str) \ | |
48 printk(KERN_INFO HVCALLS_PREFIX str HVCALLS_SUFFIX "\n") | |
49 # define HVCALLS_PRINT_VALUE_S64(str, value) \ | |
50 printk(KERN_INFO HVCALLS_PREFIX str " (" HVCALLS_S64DFMT ")" HVCALLS_SUFFIX "\n", value) | |
51 # define HVCALLS_PRINT_VALUE_U64(str, value) \ | |
52 printk(KERN_INFO HVCALLS_PREFIX str " (" HVCALLS_U64UFMT ")" HVCALLS_SUFFIX "\n", value) | |
53 # define HVCALLS_PRINT_VALUE_HEX(str, value) \ | |
54 printk(KERN_INFO HVCALLS_PREFIX str " (0x" HVCALLS_U64XFMT ")" HVCALLS_SUFFIX "\n", value) | |
55 #else | |
56 # define HVCALLS_PRINT_INFO(str) | |
57 # define HVCALLS_PRINT_VALUE_S64(str, value) | |
58 # define HVCALLS_PRINT_VALUE_U64(str, value) | |
59 # define HVCALLS_PRINT_VALUE_HEX(str, value) | |
60 #endif /*HVCALLS_DO_PRINT_INFO*/ | |
61 | |
62 // エラー出力用マクロの定義 | |
63 #define HVCALLS_PRINT_ERR(str, value) \ | |
64 printk(KERN_ERR "Error: %s\n\t[%s(%d) %s : value(" HVCALLS_S64DFMT ")]\n", \ | |
65 str, __FILE__, __LINE__, __func__, (__s64)value) | |
66 | |
67 | |
68 #endif /*HVCALLS__COMMON_H*/ |