Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ocs_driver.c File Reference
#include "ocs.h"
#include "ocs_driver.h"
#include "ocs_vpd.h"
#include "ocs_mgmt.h"
#include "ocs_gendump.h"
#include "ocs_pm.h"
#include "ocs_params.h"

Go to the source code of this file.

Functions

static void ocs_device_interrupt_handler (ocs_t *ocs, uint32_t vector)
 interrupt handler More...
 
void ocs_mgmt_driver_list (ocs_textbuf_t *textbuf, void *driver)
 
void ocs_mgmt_driver_get_all (ocs_textbuf_t *textbuf, void *driver)
 
int ocs_mgmt_driver_get (ocs_textbuf_t *textbuf, char *parent, char *name, void *driver)
 
int ocs_mgmt_driver_exec (char *parent, char *action, void *arg_in, uint32_t arg_in_length, void *arg_out, uint32_t arg_out_length, void *driver)
 
int32_t ocs_device_init (void)
 Perform driver wide initialization. More...
 
int32_t ocs_device_init_complete (void)
 Perform device initialization complete. More...
 
void ocs_device_shutdown (void)
 Perform driver wide shutdown actions. More...
 
void ocs_device_shutdown_complete (void)
 Perform driver wide shutdown complete actions. More...
 
void * ocs_device_alloc (int32_t nid)
 
void ocs_device_free (ocs_t *ocs)
 free ocs device More...
 
int32_t ocs_device_interrupts_required (ocs_t *ocs)
 return the number of interrupts required per HBA More...
 
int32_t ocs_device_attach (ocs_t *ocs)
 Initialize resources when pci devices attach. More...
 
int32_t ocs_device_detach (ocs_t *ocs)
 free resources when pci device detach More...
 
int32_t ocs_get_property (const char *prop_name, char *buffer, uint32_t buffer_len)
 get driver wide property value More...
 
const char * ocs_display_name (void *os)
 return OCS instance display name More...
 

Variables

static ocs_mgmt_functions_t driver_mgmt_functions
 

Function Details

void* ocs_device_alloc ( int32_t  nid)

Definition at line 153 of file ocs_driver.c.

int32_t ocs_device_attach ( ocs_t *  ocs)

Initialize resources when pci devices attach.

Parameters
ocspointer to ocs structure
Returns
0 for success, a negative error code value for failure.

Definition at line 277 of file ocs_driver.c.

int32_t ocs_device_detach ( ocs_t *  ocs)

free resources when pci device detach

Parameters
ocspointer to ocs structure
Returns
0 for success, a negative error code value for failure.

Definition at line 378 of file ocs_driver.c.

void ocs_device_free ( ocs_t *  ocs)

free ocs device

Parameters
ocspointer to ocs structure
Returns
none

Definition at line 227 of file ocs_driver.c.

int32_t ocs_device_init ( void  )

Perform driver wide initialization.

This function is called prior to enumerating PCI devices, with subsequent calls to ocs_device_attach. For OCS, this function invokes the back end functions ocs_scsi_tgt_driver_init(), and ocs_scsi_ini_driver_init()

Returns
returns 0 for success, a negative error code value for failure.

Definition at line 74 of file ocs_driver.c.

int32_t ocs_device_init_complete ( void  )

Perform device initialization complete.

This function is called after all PCI device/functions have been enumerated.

Returns
returns 0 for success, a negative error code value for failure.

Definition at line 109 of file ocs_driver.c.

static void ocs_device_interrupt_handler ( ocs_t *  ocs,
uint32_t  vector 
)
static

interrupt handler

Interrupt handler

Parameters
ocspointer to ocs structure
vectorZero-based interrupt vector number.
Returns
none

Definition at line 364 of file ocs_driver.c.

int32_t ocs_device_interrupts_required ( ocs_t *  ocs)

return the number of interrupts required per HBA

Parameters
ocspointer to ocs structure
Returns
the number of interrupts or negative value on error.

Definition at line 259 of file ocs_driver.c.

void ocs_device_shutdown ( void  )

Perform driver wide shutdown actions.

This function is called prior to detatching devices during a driver unload.

Returns
none

Definition at line 123 of file ocs_driver.c.

void ocs_device_shutdown_complete ( void  )

Perform driver wide shutdown complete actions.

This function is called shutdown for all devices has completed

Returns
none

Definition at line 135 of file ocs_driver.c.

const char* ocs_display_name ( void *  os)

return OCS instance display name

returns const char string of OCS instance display name

Parameters
ospointer to OS (ocs_t) object
Returns
return display name

Definition at line 469 of file ocs_driver.c.

int32_t ocs_get_property ( const char *  prop_name,
char *  buffer,
uint32_t  buffer_len 
)

get driver wide property value

Return valued driver wide property. All property values using this interface are returned as null terminated text.

Parameters
prop_nameproperty name
bufferpointer to buffer
buffer_lenlength of buffer in bytes
Returns
returns 0 for success, a negative error code value for failure.

Definition at line 420 of file ocs_driver.c.

int ocs_mgmt_driver_exec ( char *  parent,
char *  action,
void *  arg_in,
uint32_t  arg_in_length,
void *  arg_out,
uint32_t  arg_out_length,
void *  driver 
)
int ocs_mgmt_driver_get ( ocs_textbuf_t *  textbuf,
char *  parent,
char *  name,
void *  driver 
)
void ocs_mgmt_driver_get_all ( ocs_textbuf_t *  textbuf,
void *  driver 
)
void ocs_mgmt_driver_list ( ocs_textbuf_t *  textbuf,
void *  driver 
)

Variable Details

ocs_mgmt_functions_t driver_mgmt_functions
static
Initial value:
= {
.get_list_handler = ocs_mgmt_driver_list,
.get_handler = ocs_mgmt_driver_get,
.get_all_handler = ocs_mgmt_driver_get_all,
.exec_handler = ocs_mgmt_driver_exec,
}
int ocs_mgmt_driver_exec(char *parent, char *action, void *arg_in, uint32_t arg_in_length, void *arg_out, uint32_t arg_out_length, void *driver)
Definition: ocs_driver.c:553
void ocs_mgmt_driver_list(ocs_textbuf_t *textbuf, void *driver)
Definition: ocs_driver.c:392
void ocs_mgmt_driver_get_all(ocs_textbuf_t *textbuf, void *driver)
Definition: ocs_driver.c:516
int ocs_mgmt_driver_get(ocs_textbuf_t *textbuf, char *parent, char *name, void *driver)
Definition: ocs_driver.c:425

Definition at line 57 of file ocs_driver.c.