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