To be correctly initialized, PAM_SM_SESSION
        must be #define'd prior to including
        <security/pam_modules.h>. This will
        ensure that the prototypes for static modules are properly declared.
      
#define PAM_SM_SESSION
#include <security/pam_modules.h>
| int pam_sm_open_session( | pamh, | |
| flags, | ||
| argc, | ||
| argv ); | 
pam_handle_t *pamh;int flags;int argc;const char **argv;
      The pam_sm_open_session function is the service
      module's implementation of the
      pam_open_session(3) interface.
    
      This function is called to commence a session. The only valid
      value for flags is zero or:
    
Do not emit any messages.
#define PAM_SM_SESSION
#include <security/pam_modules.h>
| int pam_sm_close_session( | pamh, | |
| flags, | ||
| argc, | ||
| argv ); | 
pam_handle_t *pamh;int flags;int argc;const char **argv;
      The pam_sm_close_session function is the service
      module's implementation of the
      pam_close_session(3) interface.
    
      This function is called to terminate a session. The only valid
      value for flags is zero or:
    
Do not emit any messages.