* name first, and all synonyms must follow it with the FLAG_HIDE attribute.
*/
-#define GLOBAL_VAR(name) &Globals.name
-#define LOCAL_VAR(name) &sDefault.name
-#define offset ptr
+#define GLOBAL_VAR(name) offsetof(struct loadparm_global, name)
+#define LOCAL_VAR(name) offsetof(struct loadparm_service, name)
static struct parm_struct parm_table[] = {
{N_("Base Options"), P_SEP, P_SEPARATOR},
{
if (service == NULL) {
if (parm->p_class == P_LOCAL)
- return parm->ptr;
+ return (void *)(((char *)&sDefault)+parm->offset);
else if (parm->p_class == P_GLOBAL)
- return parm->ptr;
+ return (void *)(((char *)&Globals)+parm->offset);
else return NULL;
} else {
- return (void *)(((char *)service) + PTR_DIFF(parm->ptr, &sDefault));
+ return (void *)(((char *)service) + parm->offset);
}
}