1 #ifndef __sq_SqModule_h
2 #define __sq_SqModule_h
3 
4 
5 #define SqModuleVersionMajor	1
6 #define SqModuleVersionMinor	1
7 #define SqModuleVersion		((SqModuleVersionMajor << 16) | (SqModuleVersionMinor))
8 
9 struct SqModule
10 {
11   int		   version;
12   char		  *name;
13   char		  *type;
14   int		   (*parseArgument)(int, char **);
15   void		   (*parseEnvironment)(void);
16   void		   (*printUsage)(void);
17   void		   (*printUsageNotes)(void);
18   void		  *(*makeInterface)(void);
19   struct SqModule *next;
20 };
21 
22 #define SqModuleDefine(TYPE, NAME)		\
23 struct SqModule TYPE##_##NAME= {		\
24   SqModuleVersion,				\
25   #NAME,					\
26   #TYPE,					\
27   TYPE##_parseArgument,				\
28   TYPE##_parseEnvironment,			\
29   TYPE##_printUsage,				\
30   TYPE##_printUsageNotes,			\
31   TYPE##_makeInterface,				\
32   0						\
33 }
34 
35 
36 #endif /* __sq_SqModule_h */
37