Registers a settable parameter, defined by an application (legacy function).
#include <netware.h> int RegisterSettableParameter ( settableparms_t *setparms );
(IN) Points to a structure, which defines the settable parameter.
If successful, returns 0. Otherwise, returns a nonzero error code. For a list of possible values, see Section 30.6, Settable Parameter Return Codes.
This function adds a settable parameter to the NetWare operating system. Before your application unloads, you need to deregister the parameter (see DeRegisterSettableParameter).
You can use settable parameters to store application configuration information and for debugging.
The following sample code sets up a memory checking program for CLib.
#include <netware.h> #define NAME “CLIB Memory Checking” #define DESCRIPTION “NLM Library memory allocation system integrity checking and allocation tracking.” int gMemTrack = FALSE; rtag_t gMemTrackRTag = (rtag_t) NULL; settableparms_t gMemTrackStruct; void SetUpCLibDebugParameters( void ) { gSettableParmRTag = AllocateResourceTag(getnlmhandle(), "CLIB Memory Tracking", SettableParameterSignature); memset(&gMemTrackStruct, 0, sizeof(gMemTrackStruct)); gMemTrackStruct.value = &gMemTrack; gMemTrackStruct.rTag = gMemTrackRTag; gMemTrackStruct.name = NAME; gMemTrackStruct.type = SP_TYPE_BOOLEAN; gMemTrackStruct.flags = SP_HIDE; gMemTrackStruct.category = SP_MISCELLANEOUS; gMemTrackStruct.callback = NULL; gMemTrackStruct.description = DESCRIPTION; err = RegisterSettableParameter(&gMemTrackStruct); }
Once this is done, the new set command can be used to turn memory tracking on and off:
MYSERVER: SET CLIB Memory Checking ON MYSERVER: SET CLIB Memory Checking OFF
The following snipet of code illustrates how to remove the settable parameter when your NLM unloads.
void RemoveCLibDebugParameters( void ) { DeRegisterSettableParameters(&gMemTrackStruct); }