📄 wmdrmndcoreapi.c
字号:
/* * * Copyright (c) Sigma Designs, Inc. 2005. All rights reserved. * */#define ALLOW_OS_CODE#include "rmdef/rmdef.h"#include "../include/wmdrmndcoreapi.h"#include "rmsymbol_table/include/symbol_table.h"/** Declaration of dynamic function */#undef FUNC0#undef FUNC1#undef FUNC2#undef FUNC3#undef FUNC5#undef FUNC6#undef FUNC7#define FUNC0(name, return_type, return_error) \return_type (* dynamic_ ## name ) () = 0;#define FUNC1(name, return_type, return_error, t1, p1) \return_type (* dynamic_ ## name ) (t1 p1) = 0;#define FUNC2(name, return_type, return_error, t1, p1, t2, p2) \return_type (* dynamic_ ## name ) (t1 p1, t2 p2) = 0;#define FUNC3(name, return_type, return_error, t1, p1, t2, p2, t3, p3) \return_type (* dynamic_ ## name ) (t1 p1, t2 p2, t3 p3) = 0;#define FUNC4(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4) \return_type (* dynamic_ ## name ) (t1 p1, t2 p2, t3 p3, t4 p4) = 0;#define FUNC5(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5) \return_type (* dynamic_ ## name ) (t1 p1, t2 p2, t3 p3, t4 p4, t5 p5) = 0;#define FUNC6(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6) \return_type (* dynamic_ ## name ) (t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6) = 0;#define FUNC7(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7) \return_type (* dynamic_ ## name ) (t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7 ) = 0;#include "wmdrmndcoreapi.inc"/** Implementation */#undef FUNC0#undef FUNC1#undef FUNC2#undef FUNC3#undef FUNC4#undef FUNC5#undef FUNC6#undef FUNC7#define FUNC0(name, return_type, return_error) \return_type name (void){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (); \ } else { \ dynamic_ ## name = get_symbol(#name, 0); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC1(name, return_type, return_error, t1, p1) \return_type name (t1 p1){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1); \ } else { \ dynamic_ ## name = get_symbol(#name, 1); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC2(name, return_type, return_error, t1, p1, t2, p2) \return_type name (t1 p1, t2 p2){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1, p2); \ } else { \ dynamic_ ## name = get_symbol(#name, 2); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1, p2); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC3(name, return_type, return_error, t1, p1, t2, p2, t3, p3) \return_type name (t1 p1, t2 p2, t3 p3){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1, p2, p3); \ } else { \ dynamic_ ## name = get_symbol(#name, 3); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1, p2, p3); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC4(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4) \return_type name (t1 p1, t2 p2, t3 p3, t4 p4){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1, p2, p3, p4); \ } else { \ dynamic_ ## name = get_symbol(#name, 4); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1, p2, p3, p4); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC5(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5) \return_type name (t1 p1, t2 p2, t3 p3, t4 p4, t5 p5){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1, p2, p3, p4, p5); \ } else { \ dynamic_ ## name = get_symbol(#name, 5); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1, p2, p3, p4, p5); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC6(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6) \return_type name (t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1, p2, p3, p4, p5, p6); \ } else { \ dynamic_ ## name = get_symbol(#name, 6); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1, p2, p3, p4, p5, p6); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#define FUNC7(name, return_type, return_error, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7) \return_type name (t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7){ \ if ( dynamic_ ## name != 0 ) { \ return dynamic_ ## name (p1, p2, p3, p4, p5, p6, p7); \ } else { \ dynamic_ ## name = get_symbol(#name, 6); \ if ( dynamic_ ## name != 0 ) \ return dynamic_ ## name (p1, p2, p3, p4, p5, p6, p7); \ else \ RMDBGLOG((ENABLE,"Symbol missing : %s\n", #name)); \ } \ return return_error; \}#include "wmdrmndcoreapi.inc"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -