1 #include <stdio.h>
2 #include <slang.h>
3 
4 SLANG_MODULE(<MODULE-NAME>);
5 
6 #define MODULE_MAJOR_VERSION	0
7 #define MODULE_MINOR_VERSION	0
8 #define MODULE_PATCH_LEVEL	0
9 static char *Module_Version_String = "0.0.0";
10 #define MODULE_VERSION_NUMBER	\
11    (MODULE_MAJOR_VERSION*10000+MODULE_MINOR_VERSION*100+MODULE_PATCH_LEVEL)
12 
13 /* Define intrinsics here */
14 
15 static SLang_Intrin_Fun_Type Module_Intrinsics [] =
16 {
17    SLANG_END_INTRIN_FUN_TABLE
18 };
19 
20 static SLang_Intrin_Var_Type Module_Variables [] =
21 {
22    MAKE_VARIABLE("_<MODULE-NAME>_module_version_string", &Module_Version_String, SLANG_STRING_TYPE, 1),
23    SLANG_END_INTRIN_VAR_TABLE
24 };
25 
26 static SLang_IConstant_Type Module_Constants [] =
27 {
28    MAKE_ICONSTANT("_<MODULE-NAME>_module_version", MODULE_VERSION_NUMBER),
29    SLANG_END_ICONST_TABLE
30 };
31 
_module_ns(char * ns_name)32 int init_<MODULE-NAME>_module_ns (char *ns_name)
33 {
34    SLang_NameSpace_Type *ns = SLns_create_namespace (ns_name);
35    if (ns == NULL)
36      return -1;
37 
38    if ((-1 == SLns_add_intrin_fun_table (ns, Module_Intrinsics, NULL))
39        || (-1 == SLns_add_intrin_var_table (ns, Module_Variables, NULL))
40        || (-1 == SLns_add_iconstant_table (ns, Module_Constants, NULL)))
41      return -1;
42 
43    return 0;
44 }
45 
46 /* This function is optional */
_module(void)47 void deinit_<MODULE-NAME>_module (void)
48 {
49 }
50