1 /*---------------------------------------------------------------------------*
2   File:     middleware.h
3 
4   Copyright (C) Nintendo.  All rights reserved.
5 
6   These coded instructions, statements, and computer programs contain
7   proprietary information of Nintendo of America Inc. and/or Nintendo
8   Company Ltd., and are protected by Federal copyright law.  They may
9   not be disclosed to third parties or copied or duplicated in any form,
10   in whole or in part, without the prior written consent of Nintendo.
11 
12   $Rev: 47706 $
13  *---------------------------------------------------------------------------*/
14 
15 #ifndef NN_MIDDLEWARE_H_
16 #define NN_MIDDLEWARE_H_
17 
18 #if 0
19 #include <nn/config.h>
20 #endif
21 #include <nn/util/detail/util_Symbol.h>
22 
23 #ifndef NN_DEFINE_MODULE_ID_STRING
24 #define NN_DEFINE_MODULE_ID_STRING(name, value) \
25     static const char name[] __attribute__((section(".module_id"))) = value
26 #endif
27 
28 #define NN_MAKE_MIDDLEWARE_STRING(vender, module)   \
29     "[SDK+" vender ":" module "]"
30 
31 #define NN_DEFINE_MIDDLEWARE(name, vender, module)  \
32     NN_DEFINE_MODULE_ID_STRING(name, NN_MAKE_MIDDLEWARE_STRING(vender, module))
33 
34 #define NN_USING_MIDDLEWARE(name)                   \
35     NN_UTIL_REFER_SYMBOL(name)
36 
37 
38 #endif /* NN_MIDDLEWARE_H_ */
39