Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ocs_sm.c File Reference
#include "ocs_os.h"
#include "ocs_sm.h"

Go to the source code of this file.

Detailed Description

Generic state machine framework.

Definition in file ocs_sm.c.

Macros

#define RETEVT(x)   case x: return #x;
 

Functions

int ocs_sm_post_event (ocs_sm_ctx_t *ctx, ocs_sm_event_t evt, void *data)
 Post an event to a context. More...
 
void ocs_sm_transition (ocs_sm_ctx_t *ctx, ocs_sm_function_t state, void *data)
 Transition to a new state. More...
 
void ocs_sm_disable (ocs_sm_ctx_t *ctx)
 Disable further state machine processing. More...
 
const char * ocs_sm_event_name (ocs_sm_event_t evt)
 

Variables

const char * ocs_sm_id []
 

Macro Details

#define RETEVT (   x)    case x: return #x;

Function Details

void ocs_sm_disable ( ocs_sm_ctx_t *  ctx)

Disable further state machine processing.

Definition at line 87 of file ocs_sm.c.

const char* ocs_sm_event_name ( ocs_sm_event_t  evt)

Definition at line 92 of file ocs_sm.c.

int ocs_sm_post_event ( ocs_sm_ctx_t *  ctx,
ocs_sm_event_t  evt,
void *  data 
)

Post an event to a context.

Parameters
ctxState machine context
evtEvent to post
dataEvent-specific data (if any)
Returns
0 if successfully posted event; -1 if state machine is disabled

Definition at line 58 of file ocs_sm.c.

void ocs_sm_transition ( ocs_sm_ctx_t *  ctx,
ocs_sm_function_t  state,
void *  data 
)

Transition to a new state.

Definition at line 72 of file ocs_sm.c.

Variable Details

const char* ocs_sm_id[]
Initial value:
= {
"common",
"domain",
"login"
}

String format of the above enums.

Definition at line 41 of file ocs_sm.c.