SafPTab Struct Reference

ESM Module Procedure Table. More...

Data Fields

mf_uns32 Version
 ESM procedure table version, SafESM_PT_VER (1).
mf_uns32(* Init )(const mf_uns32 *Index, struct SafEsmConfig *Config, const struct SafEsmApi *Api, void *Reserved)
mf_uns32(* Info )(const char **Name, mf_uns32 *IFVersion, const unsigned char **Signature, void *Reserved)
mf_uns32(* Verify )(struct safpb_parameter_block *Request, void *Reserved)
mf_uns32(* Auth )(struct safpb_parameter_block *Request, void *Reserved)
mf_uns32(* XAuth )(struct safpb_parameter_block *Request, void *Reserved)
mf_uns32(* Update )(mf_s32 Type, struct safpb_parameter_block *Request, void *Reserved)
mf_uns32(* Status )()
mf_uns32(* Control )(mf_uns32 Index, mf_s32 Type, void *Data, void *Reserved)
mf_uns32(* Exit )(const mf_uns32 *Index, void *Reserved)
mf_uns32(* Admin )(struct safpb_parameter_block *Request, void *Reserved)
mf_uns32(* Reserved )()

Detailed Description

ESM Module Procedure Table.

All ESM Modules export a default entry point, which is invoked when the module is loaded. (Note that it may be called more than once, so if it needs to do any one-time initialization, it will have to handle that itself.) This entry point is invoked with no parameters. It returns a table of function pointers (procedure pointers in COBOL), defined here. The ESM Interface will use these pointers for subsequent calls.

The table has a version, which is currently 1.

The equivalent COBOL definition:

01  ESM-procedure-table.
   03  esm-version                      pic x(4) comp-5 value 1.
   03  esm-Init                         procedure-pointer.
   03  esm-Info                         procedure-pointer.
   03  esm-Verify                       procedure-pointer.
   03  esm-Auth                         procedure-pointer.
   03  esm-XAuth                        procedure-pointer.
   03  esm-Update                       procedure-pointer.
   03  esm-Status                       procedure-pointer.
   03  esm-Control                      procedure-pointer.
   03  esm-Exit                         procedure-pointer.
   03  esm-Admin                        procedure-pointer.
   03  esm-Reserved                     procedure-pointer value null.

Field Documentation

mf_uns32(* Init)(const mf_uns32 *Index, struct SafEsmConfig *Config, const struct SafEsmApi *Api, void *Reserved)

Initialize and configure the ESM Module. Typically a module will use this function to connect to its ESM.

  • Index is the index of this ESM Module in the module list given to ESF Manager by the caller, starting from 0 for the first ESM Module. ESM Modules should use this to index into the ESM Module private data area of the ACEE, if they need to use that space. Note this is passed by reference, for consistency with the other parameters.
  • Config is a pointer to a SafEsmConfig structure containing the module's configuration data.
  • Api is a pointer to a SafEsmApi structure containing function pointers (procedure-pointers for COBOL) for the service APIs that ESF Manager provides to ESM Modules.
  • Reserved is reserved for future use.
  • Return zero for success, non-zero for error. See Init Procedure.

Referenced by SafEsmInit().

mf_uns32(* Info)(const char **Name, mf_uns32 *IFVersion, const unsigned char **Signature, void *Reserved)

Provide a documentation string and interface version information.

  • The Name pointer can be set to point to a null-terminated string containing anything the ESM Module wants to put there; usually it will be a name and version for the module.
  • The interface version specifies the version of the ESM Interface that the module uses, SafESM_IF_VER (1).
  • Signature is reserved for future use.
  • Reserved is reserved for future use.
  • Return zero for success, non-zero for error. See Init Procedure.

Referenced by SafEsmInit().

mf_uns32(* Verify)(struct safpb_parameter_block *Request, void *Reserved)

Respond to an ESF VERIFY request.

Referenced by SafEsmCVerify().

mf_uns32(* Auth)(struct safpb_parameter_block *Request, void *Reserved)

Respond to an ESF AUTH request.

Referenced by SafEsmCAuth().

mf_uns32(* XAuth)(struct safpb_parameter_block *Request, void *Reserved)

Respond to an ESF XAUTH request.

Referenced by SafEsmCXAuth().

mf_uns32(* Update)(mf_s32 Type, struct safpb_parameter_block *Request, void *Reserved)

Callback to notify an ESM Module of an external security update event.

Referenced by SafEsmCUpdate().

mf_uns32(* Status)()

Get status of ESM Module and associated ESM.

mf_uns32(* Control)(mf_uns32 Index, mf_s32 Type, void *Data, void *Reserved)

Callback to notify an ESM Module of an administrative control event. Control events might include being enabled or disabled, for example. This procedure may also be used to request a change in the ESM Module's behavior.

  • Index is the index of this ESM Module in the module list given to ESF Manager by the caller, starting from 0 for the first ESM Module.
  • Type indicates what kind of control request this is; see ESF ESM Control Request Types.
  • Data is a pointer to a data area, the contents of which depend on the Type field.
  • Reserved is reserved for future use.
  • Return zero for success, non-zero for error. See Control Procedure.

Referenced by SafEsmCControl().

mf_uns32(* Exit)(const mf_uns32 *Index, void *Reserved)

Notify an ESM Module that the host environment is exiting.

  • Index is the index of this ESM Module in the module list given to ESF Manager by the caller, starting from 0 for the first ESM Module. It is equivalent to the Index parameter for the Init callback.
  • Reserved is reserved for future use.
  • Return zero for success, non-zero for error. See Exit Procedure.

Referenced by SafEsmExit().

mf_uns32(* Admin)(struct safpb_parameter_block *Request, void *Reserved)

Respond to an ESF ADMIN request.

Referenced by SafEsmCAdmin().

mf_uns32(* Reserved)()

A placeholder for future expansion.


The documentation for this struct was generated from the following file: