iodimm_types.h File Reference

#include <fio/public/common_types.h>
#include <fio/public/dyn_struct_alloc.h>

Go to the source code of this file.

Data Structures

struct  fio_iodimm_selector
 Select an ioDimm. This structure is used as the input to most operations. Depending on the selector mode, one of the members must be populated with the correct value. More...
struct  fio_iodimm_iterator
 Used to iterate over ioDimms. The structure should be initialized by FIO_STRUCT_INIT. All fields of the structure are used internally by first_iodimm_handle() and next_iodimm_handle(). Fields should not be set by the caller. More...
struct  fio_iodimm_adapter_info
 Information about an ioDimm's adapter. More...
struct  fio_iodimm_product_info
 Various product information for an ioDimm. More...
struct  fio_iodimm_flashback_t
 State of flashback on an ioDimm. More...
struct  fio_iodimm_state_info_t
 Current state of an ioDimm. More...
struct  fio_iodimm_write_throttling
 Current write-throttling state of an ioDimm. More...
struct  fio_iodimm_power_usage
 Struct representing power monitor information from the driver. More...
struct  fio_iodimm_power_setpoints
 Setpoints for the power monitoring system. More...
struct  fio_iodimm_hw_alerts
 Hardware alerts from sysmon. More...
struct  fio_iodimm_capacity_entry
 Capacity history data point. More...
struct  fio_iodimm_usage_entry
 Write history data point. More...
struct  fio_iodimm_temperature_entry
 Temperature history data point. More...
struct  fio_iodimm_history_table_t
 Structure used to fetch historical data points about various aspects of the device. More...
struct  fio_iodimm_usage
 Usage data for an ioDimm. More...
struct  fio_iodimm_temperature_setpoints
 Structure containing various performance data for an ioDimm. More...
struct  fio_led_status
 Status of the LED's on the ioDimm. More...
struct  fio_iodimm_health
 Health of an ioDimm. More...
struct  fio_iodimm_device_identifiers
 Device label. More...
struct  fio_iodimm_static_format_info
 Static format info of the ioDimm. More...
struct  fio_iodimm_format_sizes
 Formatted device sizes calculations for an ioDimm. More...
struct  fio_iodimm_dynamic_format_info
 Static format information for the ioDimm. More...
struct  fio_iodimm_driver_ver_info
 Driver's version info. More...
struct  fio_iodimm_alt_info
 Alternate driver information. More...
struct  fio_firmware_barrier
 Firmware barrier version information. More...
struct  fio_iodimm_settings
 General ioDimm configuration settings. More...
struct  fio_iodimm_temperatures
 Current temperatures. More...
struct  fio_iodimm_attach_req2
 Structure used to request an ioDimm to attach. More...
struct  fio_iodimm_detach_req2
 Structure used to request an ioDimm to detach. More...
struct  fio_iodimm_update_req2
 Structure used to request an ioDimm to update firmware. More...
struct  fio_iodimm_fff_ver_req2
 Structure used to request a firmware version from a firmware file for a given ioDimm. More...
struct  fio_iodimm_format_req2
 Structure representing a request to low-level format an ioDimm. More...
struct  fio_iodimm_prealloc_req
 Structure used to request an ioDimm to start or stop preallocating 100% memory usage. More...
struct  fio_iodimm_prealloc_info
 Structure used to return information about how much memory is needed for preallocation. More...

Defines

#define FIO_DRIVER_VER_SIZE   255
 Size of the driver version string.
#define FIO_IODIMM_LABEL_SIZE   255
 Size of the device label string.
#define FIO_IODIMM_DEVICE_NAME_SIZE   100
 Size of the device name string.
#define FIO_IODIMM_BLK_DEV_NAME_SIZE   100
 Size of the block device name string.
#define FIO_IODIMM_ALT_PART_NUM_SIZE   255
 Size of the alt part number string.
#define FIO_IODIMM_UUID_SIZE   37
 Size of the fio-format generated unique id (uuid) string.

Typedefs

typedef struct fio_iodimm_selector fio_iodimm_selector_t
 Select an ioDimm. This structure is used as the input to most operations. Depending on the selector mode, one of the members must be populated with the correct value.
typedef struct fio_iodimm_iterator fio_iodimm_iterator_t
 Used to iterate over ioDimms. The structure should be initialized by FIO_STRUCT_INIT. All fields of the structure are used internally by first_iodimm_handle() and next_iodimm_handle(). Fields should not be set by the caller.
typedef struct
fio_iodimm_adapter_info 
fio_iodimm_adapter_info_t
 Information about an ioDimm's adapter.
typedef struct
fio_iodimm_product_info 
fio_iodimm_product_info_t
 Various product information for an ioDimm.
typedef enum
fio_iodimm_write_throttling_level 
fio_iodimm_write_throttling_level_t
 Levels of write throttling that an ioDimm may enter.
typedef enum
fio_iodimm_write_throttling_reason 
fio_iodimm_write_throttling_reason_t
 Reasons why an ioDimm may begin write throttling.
typedef struct
fio_iodimm_write_throttling 
fio_iodimm_write_throttling_t
 Current write-throttling state of an ioDimm.
typedef struct
fio_iodimm_power_usage 
fio_iodimm_power_usage_t
 Struct representing power monitor information from the driver.
typedef struct
fio_iodimm_power_setpoints 
fio_iodimm_power_setpoints_t
 Setpoints for the power monitoring system.
typedef struct fio_iodimm_hw_alerts fio_iodimm_hw_alerts_t
 Hardware alerts from sysmon.
typedef struct
fio_iodimm_capacity_entry 
fio_iodimm_capacity_entry_t
 Capacity history data point.
typedef struct
fio_iodimm_usage_entry 
fio_iodimm_usage_entry_t
 Write history data point.
typedef struct
fio_iodimm_temperature_entry 
fio_iodimm_temperature_entry_t
 Temperature history data point.
typedef struct fio_iodimm_usage fio_iodimm_usage_t
 Usage data for an ioDimm.
typedef struct
fio_iodimm_temperature_setpoints 
fio_iodimm_temperature_setpoints_t
 Structure containing various performance data for an ioDimm.
typedef enum fio_iodimm_led_status fio_iodimm_led_status_t
 Settings for an LED.
typedef struct fio_led_status fio_led_status_t
 Status of the LED's on the ioDimm.
typedef struct fio_iodimm_health fio_iodimm_health_t
 Health of an ioDimm.
typedef struct
fio_iodimm_device_identifiers 
fio_iodimm_device_identifiers_t
 Device label.
typedef struct
fio_iodimm_static_format_info 
fio_iodimm_static_format_info_t
 Static format info of the ioDimm.
typedef struct
fio_iodimm_format_sizes 
fio_iodimm_format_sizes_t
 Formatted device sizes calculations for an ioDimm.
typedef struct
fio_iodimm_dynamic_format_info 
fio_iodimm_dynamic_format_info_t
 Static format information for the ioDimm.
typedef struct
fio_iodimm_driver_ver_info 
fio_iodimm_driver_ver_info_t
 Driver's version info.
typedef struct fio_iodimm_alt_info fio_iodimm_alt_info_t
 Alternate driver information.
typedef struct fio_firmware_barrier fio_firmware_barrier_t
 Firmware barrier version information.
typedef struct fio_iodimm_settings fio_iodimm_settings_t
 General ioDimm configuration settings.
typedef struct
fio_iodimm_temperatures 
fio_iodimm_temperatures_t
 Current temperatures.
typedef struct
fio_iodimm_attach_req2 
fio_iodimm_attach_req2_t
 Structure used to request an ioDimm to attach.
typedef struct
fio_iodimm_detach_req2 
fio_iodimm_detach_req2_t
 Structure used to request an ioDimm to detach.
typedef struct
fio_iodimm_update_req2 
fio_iodimm_update_req2_t
 Structure used to request an ioDimm to update firmware.
typedef struct
fio_iodimm_fff_ver_req2 
fio_iodimm_fff_ver_req2_t
 Structure used to request a firmware version from a firmware file for a given ioDimm.
typedef struct
fio_iodimm_format_req2 
fio_iodimm_format_req2_t
 Structure representing a request to low-level format an ioDimm.
typedef struct
fio_iodimm_prealloc_req 
fio_iodimm_prealloc_req_t
 Structure used to request an ioDimm to start or stop preallocating 100% memory usage.
typedef struct
fio_iodimm_prealloc_info 
fio_iodimm_prealloc_info_t
 Structure used to return information about how much memory is needed for preallocation.

Enumerations

enum  fio_iodimm_selector_mode {
  FIO_IODIMM_SELECT_NAME = 0, FIO_IODIMM_SELECT_INDEX = 1, FIO_IODIMM_SELECT_HANDLE = 2, FIO_IODIMM_SELECT_PCI = 3,
  FIO_IODIMM_SELECT_PCI_STRING = 4
}
 

Device selector mode enumeration. This is used when opening a device handle to indicate how the handle will be opened.

More...
enum  fio_iodimm_adapter_type_t {
  FIO_IODIMM_ADAPTER_TYPE_IODRIVE = 0, FIO_IODIMM_ADAPTER_TYPE_IODRIVE_LOWPRO2 = 1, FIO_IODIMM_ADAPTER_TYPE_IODRIVE_DUO = 2, FIO_IODIMM_ADAPTER_TYPE_IOSAN = 3,
  FIO_IODIMM_ADAPTER_TYPE_UNKNOWN = 4, FIO_IODIMM_ADAPTER_TYPE_IOOCTAL = 5
}
 

Enumeration of potential adapter types that may contain an ioDimm.

More...
enum  fio_iodimm_state_t {
  FIO_IODIMM_STATE_DETACHED = 0, FIO_IODIMM_STATE_ATTACHING = 1, FIO_IODIMM_STATE_SCANNING_METADATA = 2, FIO_IODIMM_STATE_SCANNING_DATA = 3,
  FIO_IODIMM_STATE_ATTACHED = 4, FIO_IODIMM_STATE_DETACHING = 5, FIO_IODIMM_STATE_STOPPING = 6, FIO_IODIMM_STATE_STOPPED = 7,
  FIO_IODIMM_STATE_MINIMAL = 8, FIO_IODIMM_STATE_FAILED = 9, FIO_IODIMM_STATE_UNKNOWN = 10
}
 

Enumeration of states that the ioDimm may be in.

More...
enum  fio_iodimm_flashback_status_t { FIO_IODIMM_FLASHBACK_STATUS_UNAVAILABLE = 0, FIO_IODIMM_FLASHBACK_STATUS_NOT_ACTIVE = 1, FIO_IODIMM_FLASHBACK_STATUS_ACTIVE = 2 }
 

Enumeration of flashback statuses.

More...
enum  fio_iodimm_minmode_reason_t {
  FIO_MINMODE_REASON_UNKNOWN = 0, FIO_MINMODE_REASON_FW_OUT_OF_DATE = 1, FIO_MINMODE_REASON_INSUFFICIENT_POWER = 2, FIO_MINMODE_REASON_DUAL_PLANE_FAIL = 3,
  FIO_MINMODE_REASON_FORCED = 4, FIO_MINMODE_REASON_INTERNAL = 5, FIO_MINMODE_REASON_CARD_LIMIT_EXCEEDED = 6, FIO_MINMODE_REASON_NOT_IN_MINMODE = 7,
  FIO_MINMODE_REASON_UNSUPPORTED_OS = 8, FIO_MINMODE_REASON_INSUFFICIENT_MEMORY = 9, FIO_MINMODE_REASON_SMP_BOOTLOADER_MODE = 10
}
 

Reasons that an ioDimm may have gone into minimal mode.

More...
enum  fio_iodimm_write_throttling_level { FIO_WRITE_THROTTLE_NONE = 0, FIO_WRITE_THROTTLE_PARTIAL = 1, FIO_WRITE_THROTTLE_COMPLETE = 2 }
 

Levels of write throttling that an ioDimm may enter.

More...
enum  fio_iodimm_write_throttling_reason {
  FIO_WRITE_THROTTLE_REASON_NONE = 0, FIO_WRITE_THROTTLE_REASON_USER = 1, FIO_WRITE_THROTTLE_REASON_NO_MD_BLOCKS = 2, FIO_WRITE_THROTTLE_REASON_NOMEM = 3,
  FIO_WRITE_THROTTLE_REASON_DEAD_DIE = 4, FIO_WRITE_THROTTLE_REASON_WEAROUT = 5, FIO_WRITE_THROTTLE_REASON_ADAPTER_POWER = 6, FIO_WRITE_THROTTLE_REASON_INTERNAL = 7,
  FIO_WRITE_THROTTLE_REASON_LIMIT_POWER = 8, FIO_WRITE_THROTTLE_REASON_GROOM_FAILS = 9
}
 

Reasons why an ioDimm may begin write throttling.

More...
enum  fio_iodimm_power_usage_peaks_t {
  FIO_PEAKS_NONE = 0, FIO_PEAKS_MAX_VOLTS = 1 << 0, FIO_PEAKS_MIN_VOLTS = 1 << 1, FIO_PEAKS_MAX_WATTS = 1 << 2,
  FIO_PEAKS_ALL = 0xff
}
 

Peak values that can be cleared. These can be OR'd together to clear multiples at once.

More...
enum  fio_iodimm_hw_alert_type_t {
  FIO_HW_ALERT_NONE = 0x00, FIO_HW_ALERT_TEMPERATURE = 0x01, FIO_HW_ALERT_VCCINT = 0x02, FIO_HW_ALERT_VCCAUX = 0x04,
  FIO_HW_ALERT_OVERTEMP = 0x08
}
 

Hardware alert bitfield definition.

More...
enum  fio_iodimm_history_type_t {
  FIO_IODIMM_HISTORY_TYPE_UNKNOWN = 0, FIO_IODIMM_HISTORY_TYPE_CAPACITY = 1, FIO_IODIMM_HISTORY_TYPE_PHYSICAL_READS = 2, FIO_IODIMM_HISTORY_TYPE_PHYSICAL_WRITES = 3,
  FIO_IODIMM_HISTORY_TYPE_FPGA_TEMPERATURE = 5, FIO_IODIMM_HISTORY_TYPE_BOARD_TEMPERATURE = 6, FIO_IODIMM_HISTORY_TYPE_MAX
}
 

Types of history entries stored in the ioDimm's non-volatile data segment.

More...
enum  fio_iodimm_led_status { FIO_IODIMM_LED_STATUS_OFF = 0, FIO_IODIMM_LED_STATUS_ON = 1, FIO_IODIMM_LED_STATUS_BLINK = 2 }
 

Settings for an LED.

More...
enum  fio_iodimm_health_status_t {
  FIO_IODIMM_HEALTH_UNKNOWN = 0, FIO_IODIMM_HEALTH_HEALTHY = 1, FIO_IODIMM_HEALTH_WARNING = 2, FIO_IODIMM_HEALTH_REDUCED_WRITE = 3,
  FIO_IODIMM_HEALTH_READ_ONLY = 4
}
 

Health states for an ioDimm.

More...
enum  fio_iodimm_attach_status_t {
  FIO_IODIMM_ATTACH_SUCCESS = 0, FIO_IODIMM_ATTACH_DEVICE_NOT_FOUND = 1, FIO_IODIMM_ATTACH_IMPROPER_VERSION = 2, FIO_IODIMM_ATTACH_NO_EBMAP = 3,
  FIO_IODIMM_ATTACH_FAILED = 4, FIO_IODIMM_ATTACH_FAILED_PERM = 5, FIO_IODIMM_ATTACH_FAILED_ALREADY_ATTACHED = 6, FIO_IODIMM_ATTACH_FAILED_NOT_IMPLEMENTED = 7,
  FIO_IODIMM_ATTACH_PCI_UNSUPPORTED = 8, FIO_IODIMM_ATTACH_INVALID_INPUT = 9
}
 

Enumeration of potential results of an attach attempt.

More...
enum  fio_iodimm_detach_method_t { FIO_IODIMM_DETACH_NORMAL = 0xA, FIO_IODIMM_DETACH_IMMEDIATE = 0xB }
 

Detach method.

More...
enum  fio_iodimm_detach_status_t {
  FIO_IODIMM_DETACH_SUCCESS = 0, FIO_IODIMM_DETACH_METHOD_NOT_SPECIFIED = 1, FIO_IODIMM_DETACH_DEVICE_NOT_FOUND = 2, FIO_IODIMM_DETACH_FAILED = 3,
  FIO_IODIMM_DETACH_FAILED_DEVICE_BUSY = 4, FIO_IODIMM_DETACH_FAILED_PERM = 5, FIO_IODIMM_DETACH_FAILED_ALREADY_DETACHED = 6, FIO_IODIMM_DETACH_FAILED_NOT_IMPLEMENTED = 7,
  FIO_IODIMM_DETACH_PCI_UNSUPPORTED = 8, FIO_IODIMM_DETACH_INVALID_INPUT = 9
}
 

Results of a detach attempt.

More...
enum  fio_iodimm_update_status_t {
  FIO_IODIMM_UPDATE_SUCCESS = 0, FIO_IODIMM_UPDATE_DEVICE_NOT_FOUND = 1, FIO_IODIMM_UPDATE_FFF_FILE_NOT_FOUND = 2, FIO_IODIMM_UPDATE_FFF_PART_NOT_FOUND = 3,
  FIO_IODIMM_UPDATE_INVALID_FFF_FORMAT = 4, FIO_IODIMM_UPDATE_EEPROM_READ_FAIL = 5, FIO_IODIMM_UPDATE_FIRMWARE_READ_FAIL = 6, FIO_IODIMM_UPDATE_OLD_VERSION = 7,
  FIO_IODIMM_UPDATE_CUR_VERSION = 8, FIO_IODIMM_UPDATE_DRIVER_INVALID_STATE = 9, FIO_IODIMM_UPDATE_FAILURE = 10, FIO_IODIMM_UPDATE_FAILURE_PERM = 11,
  FIO_IODIMM_UPDATE_IOCTL_LOCK_FAILURE = 12, FIO_IODIMM_UPDATE_SUCCESS_COLD_REBOOT = 13, FIO_IODIMM_UPDATE_NOT_IMPLEMENTED = 14, FIO_IODIMM_UPDATE_SUCCESS_NO_REBOOT = 15,
  FIO_IODIMM_UPDATE_SMP_NO_BOOTMODE = 16, FIO_IODIMM_UPDATE_SMP_NO_SMP = 17, FIO_IODIMM_UPDATE_SMP_FAILURE = 18, FIO_IODIMM_UPDATE_INVALID_INPUT = 19,
  FIO_IODIMM_UPDATE_UNSAFE = 20, FIO_IODIMM_UPDATE_ECC_MISMATCH = 21, FIO_IODIMM_UPDATE_ECC_ERROR = 22
}
 

Results of a firmware update request.

More...
enum  fio_iodimm_fff_ver_status_t {
  FIO_IODIMM_FFF_VER_SUCCESS = 0, FIO_IODIMM_FFF_VER_DEVICE_NOT_FOUND = 1, FIO_IODIMM_FFF_VER_FFF_FILE_NOT_FOUND = 2, FIO_IODIMM_FFF_VER_PART_NOT_FOUND = 3,
  FIO_IODIMM_FFF_VER_INVALID_FFF_FORMAT = 4, FIO_IODIMM_FFF_VER_READ_FAIL = 5, FIO_IODIMM_FFF_VER_NOT_IMPLEMENTED = 6, FIO_IODIMM_FFF_VER_INVALID_INPUT = 7
}
 

Enumeration of possible results when trying to get a firmware version for an ioDimm.

More...
enum  fio_iodimm_format_method_t { FIO_IODIMM_FORMAT_NORMAL = 0xA, FIO_IODIMM_FORMAT_QUIT_ON_ERR = 0xB }
 

Device format method to use.

More...
enum  fio_iodimm_format_size_mode_t { FIO_IODIMM_FORMAT_USER_DEFINED_SIZE_MB = 0xA, FIO_IODIMM_FORMAT_USER_DEFINED_SIZE_PCT = 0xB, FIO_IODIMM_FORMAT_DEFAULT_SIZE = 0xC }
 

Format modes.

More...
enum  fio_iodimm_format_status_t {
  FIO_IODIMM_FORMAT_SUCCESS = 0, FIO_IODIMM_FORMAT_METHOD_NOT_SPECIFIED = 1, FIO_IODIMM_FORMAT_INVALID_DRIVE_SIZE = 2, FIO_IODIMM_FORMAT_FAIL_GOOD_D_LEB = 3,
  FIO_IODIMM_FORMAT_FAIL_GOOD_MD_LEB = 4, FIO_IODIMM_FORMAT_FAIL_OPEN_CHANNEL = 5, FIO_IODIMM_FORMAT_FAIL_LOCK_CHANNEL = 6, FIO_IODIMM_FORMAT_QUIT_ON_ERR_BAD_LEB = 7,
  FIO_IODIMM_FORMAT_DEVICE_NOT_FOUND = 8, FIO_IODIMM_FORMAT_FAILURE = 9, FIO_IODIMM_FORMAT_FAILURE_NO_EBMAP = 10, FIO_IODIMM_FORMAT_FAIL_NOMEM = 11,
  FIO_IODIMM_FORMAT_FIXED_PCT_VIOLATED = 14, FIO_IODIMM_FORMAT_NOT_IMPLEMENTED = 15, FIO_IODIMM_FORMAT_INVALID_SS_MIN = 16, FIO_IODIMM_FORMAT_INVALID_SS_MAX = 17,
  FIO_IODIMM_FORMAT_INVALID_SS_PWR2 = 18, FIO_IODIMM_FORMAT_INVALID_SS_MULT = 19, FIO_IODIMM_FORMAT_PCI_UNSUPPORTED = 20, FIO_IODIMM_FORMAT_INVALID_INPUT = 21,
  FIO_IODIMM_FORMAT_FAILED_PERM = 22, FIO_IODIMM_FORMAT_NO_NV_DATA = 23
}
enum  fio_iodimm_prealloc_status_t {
  FIO_IODIMM_PREALLOC_SUCCESS = 0, FIO_IODIMM_PREALLOC_DEVICE_NOT_FOUND = 1, FIO_IODIMM_PREALLOC_FAILED = 2, FIO_IODIMM_PREALLOC_FAILED_PERM = 3,
  FIO_IODIMM_PREALLOC_FAILED_NOT_IMPLEMENTED = 4, FIO_IODIMM_PREALLOC_FAILED_NOT_INITIALIZED = 5, FIO_IODIMM_PREALLOC_INVALID_INPUT = 6
}
 

Enumeration of potential results of a preallocation setting attempt.

More...

Define Documentation

#define FIO_DRIVER_VER_SIZE   255

Size of the driver version string.

#define FIO_IODIMM_ALT_PART_NUM_SIZE   255

Size of the alt part number string.

#define FIO_IODIMM_BLK_DEV_NAME_SIZE   100

Size of the block device name string.

#define FIO_IODIMM_DEVICE_NAME_SIZE   100

Size of the device name string.

#define FIO_IODIMM_LABEL_SIZE   255

Size of the device label string.

#define FIO_IODIMM_UUID_SIZE   37

Size of the fio-format generated unique id (uuid) string.


Typedef Documentation

Firmware barrier version information.

Information about an ioDimm's adapter.

Alternate driver information.

Structure used to request an ioDimm to attach.

Capacity history data point.

Structure used to request an ioDimm to detach.

Device label.

Driver's version info.

Static format information for the ioDimm.

Structure used to request a firmware version from a firmware file for a given ioDimm.

Structure representing a request to low-level format an ioDimm.

Formatted device sizes calculations for an ioDimm.

Health of an ioDimm.

Hardware alerts from sysmon.

Used to iterate over ioDimms. The structure should be initialized by FIO_STRUCT_INIT. All fields of the structure are used internally by first_iodimm_handle() and next_iodimm_handle(). Fields should not be set by the caller.

Settings for an LED.

Setpoints for the power monitoring system.

Struct representing power monitor information from the driver.

Structure used to return information about how much memory is needed for preallocation.

Structure used to request an ioDimm to start or stop preallocating 100% memory usage.

Various product information for an ioDimm.

Select an ioDimm. This structure is used as the input to most operations. Depending on the selector mode, one of the members must be populated with the correct value.

General ioDimm configuration settings.

Static format info of the ioDimm.

Temperature history data point.

Structure containing various performance data for an ioDimm.

Current temperatures.

Structure used to request an ioDimm to update firmware.

Write history data point.

Usage data for an ioDimm.

Levels of write throttling that an ioDimm may enter.

Reasons why an ioDimm may begin write throttling.

Current write-throttling state of an ioDimm.

Status of the LED's on the ioDimm.


Enumeration Type Documentation

Enumeration of potential adapter types that may contain an ioDimm.

Enumerator:
FIO_IODIMM_ADAPTER_TYPE_IODRIVE 

Adapter for dimm is a standard ioDrive

FIO_IODIMM_ADAPTER_TYPE_IODRIVE_LOWPRO2 

Adapter for dimm is a LowPro2 ioDrive or ioMono

FIO_IODIMM_ADAPTER_TYPE_IODRIVE_DUO 

Adapter for dimm is an ioDrive Duo

FIO_IODIMM_ADAPTER_TYPE_IOSAN 

Adapter for dimm is an ioSAN

FIO_IODIMM_ADAPTER_TYPE_UNKNOWN 

Could not determine the adapter type

FIO_IODIMM_ADAPTER_TYPE_IOOCTAL 

Adapter for dimm is an ioOctal

Enumeration of potential results of an attach attempt.

Enumerator:
FIO_IODIMM_ATTACH_SUCCESS 

Successfully attached

FIO_IODIMM_ATTACH_DEVICE_NOT_FOUND 

Could not find the device indicated by the selector.

FIO_IODIMM_ATTACH_IMPROPER_VERSION 

Attach failed due to an on-disk internal version mismatch

FIO_IODIMM_ATTACH_NO_EBMAP 

Attach failed due to the ioDimm not having an LEB Map.

FIO_IODIMM_ATTACH_FAILED 

Internal failure occurred while attempting to attach.

FIO_IODIMM_ATTACH_FAILED_PERM 

User does not have permission to attach device.

FIO_IODIMM_ATTACH_FAILED_ALREADY_ATTACHED 

Device is already attached.

FIO_IODIMM_ATTACH_FAILED_NOT_IMPLEMENTED 

Reserved for internal use.

FIO_IODIMM_ATTACH_PCI_UNSUPPORTED 

Attaching using a PCI based selector is not supported.

FIO_IODIMM_ATTACH_INVALID_INPUT 

Invalid input parameters

Detach method.

Enumerator:
FIO_IODIMM_DETACH_NORMAL 

Normal detach, may take a few seconds.

FIO_IODIMM_DETACH_IMMEDIATE 

Emergency immediate detach, may result in data loss and full rescan next attach attempt!

Results of a detach attempt.

Enumerator:
FIO_IODIMM_DETACH_SUCCESS 

Successfully detached

FIO_IODIMM_DETACH_METHOD_NOT_SPECIFIED 

User did not explicitly specify a detach method

FIO_IODIMM_DETACH_DEVICE_NOT_FOUND 

Could not find the device pointed to by the ioDimm selector.

FIO_IODIMM_DETACH_FAILED 

Internal failure occurred while attempting to detach.

FIO_IODIMM_DETACH_FAILED_DEVICE_BUSY 

Device was in use by the operating system and was not ready to detach.

FIO_IODIMM_DETACH_FAILED_PERM 

User does not have permission to detach the device

FIO_IODIMM_DETACH_FAILED_ALREADY_DETACHED 

The device is already detached.

FIO_IODIMM_DETACH_FAILED_NOT_IMPLEMENTED 

Reserved for internal use.

FIO_IODIMM_DETACH_PCI_UNSUPPORTED 

Detaching using a PCI based selector is not supported.

FIO_IODIMM_DETACH_INVALID_INPUT 

Invalid input parameters

Enumeration of possible results when trying to get a firmware version for an ioDimm.

Enumerator:
FIO_IODIMM_FFF_VER_SUCCESS 

Successfully got firmware version

FIO_IODIMM_FFF_VER_DEVICE_NOT_FOUND 

Device not found for given index

FIO_IODIMM_FFF_VER_FFF_FILE_NOT_FOUND 

Could not find the specified FFF file

FIO_IODIMM_FFF_VER_PART_NOT_FOUND 

The FFF file was valid, but no firmware was found for the device's part number

FIO_IODIMM_FFF_VER_INVALID_FFF_FORMAT 

The FFF file is not in a valid format.

FIO_IODIMM_FFF_VER_READ_FAIL 

Could not read EEPROM information to get device's part number

FIO_IODIMM_FFF_VER_NOT_IMPLEMENTED 

Reserved for internal use.

FIO_IODIMM_FFF_VER_INVALID_INPUT 

Invalid parameters.

Enumeration of flashback statuses.

Enumerator:
FIO_IODIMM_FLASHBACK_STATUS_UNAVAILABLE 

Flashback status could not be determined.

FIO_IODIMM_FLASHBACK_STATUS_NOT_ACTIVE 

Flashback is not active on any bank.

FIO_IODIMM_FLASHBACK_STATUS_ACTIVE 

Flashback is active on at least one bank.

Device format method to use.

Enumerator:
FIO_IODIMM_FORMAT_NORMAL 

Perform a normal format, continuing on error until complete

FIO_IODIMM_FORMAT_QUIT_ON_ERR 

Perform a format, but stop on the first error encountered. This should be used only for debugging purposes, as the device will be in an inconsistent state until the entire device has been formatted

Format modes.

Enumerator:
FIO_IODIMM_FORMAT_USER_DEFINED_SIZE_MB 

Format based on a fixed size in MiB

FIO_IODIMM_FORMAT_USER_DEFINED_SIZE_PCT 

Format based on a percentage of the maximum format size

FIO_IODIMM_FORMAT_DEFAULT_SIZE 

Format to the default size (100% of maximum format size)

Enumerator:
FIO_IODIMM_FORMAT_SUCCESS 

Successfully formatted the device

FIO_IODIMM_FORMAT_METHOD_NOT_SPECIFIED 

Input error: the format method was not specified

FIO_IODIMM_FORMAT_INVALID_DRIVE_SIZE 

Input error: invalid drive size specified

FIO_IODIMM_FORMAT_FAIL_GOOD_D_LEB 

Flash has degraded, and the size request cannot be satisfied.

FIO_IODIMM_FORMAT_FAIL_GOOD_MD_LEB 

Obsolete: Flash has degraded and the device can no longer be formatted

FIO_IODIMM_FORMAT_FAIL_OPEN_CHANNEL 

Failed to open the channel. Make sure device is not in minimal mode.

FIO_IODIMM_FORMAT_FAIL_LOCK_CHANNEL 

Failed to lock channel - another process may be doing a critical task. Try again later.

FIO_IODIMM_FORMAT_QUIT_ON_ERR_BAD_LEB 

"Quit on error" was set, and an error was encountered

FIO_IODIMM_FORMAT_DEVICE_NOT_FOUND 

Could not find specified device

FIO_IODIMM_FORMAT_FAILURE 

Runtime formatting failure

FIO_IODIMM_FORMAT_FAILURE_NO_EBMAP 

Device is missing its EB map and cannot be formatted. Contact customer support to address this issue

FIO_IODIMM_FORMAT_FAIL_NOMEM 

Not enough memory available to the driver to perform the format

FIO_IODIMM_FORMAT_FIXED_PCT_VIOLATED 

It is only possible to format this device to the default size and that size was not specified in the format request.

FIO_IODIMM_FORMAT_NOT_IMPLEMENTED 

Reserved for internal use.

FIO_IODIMM_FORMAT_INVALID_SS_MIN 

Invalid minimum sector size and force was not used

FIO_IODIMM_FORMAT_INVALID_SS_MAX 

Invalid maximum sector size and force was not used

FIO_IODIMM_FORMAT_INVALID_SS_PWR2 

Sector size must be power of 2 and force was not used

FIO_IODIMM_FORMAT_INVALID_SS_MULT 

Sector size does not match required multiplier

FIO_IODIMM_FORMAT_PCI_UNSUPPORTED 

Formatting using a PCI based selector is not supported.

FIO_IODIMM_FORMAT_INVALID_INPUT 

Invalid input parameters

FIO_IODIMM_FORMAT_FAILED_PERM 

User does not have permission to format the device

FIO_IODIMM_FORMAT_NO_NV_DATA 

The NV data scan was skipped on driver load. Drive should not be formatted or the warranty will be voided.

Health states for an ioDimm.

Enumerator:
FIO_IODIMM_HEALTH_UNKNOWN 

Health of the device is unknown

FIO_IODIMM_HEALTH_HEALTHY 

Device is healthy

FIO_IODIMM_HEALTH_WARNING 

Device is getting close to entering reduced write mode.

FIO_IODIMM_HEALTH_REDUCED_WRITE 

Device has entered reduced write mode to preserve the flash from further wearout.

FIO_IODIMM_HEALTH_READ_ONLY 

Device has entered read-only mode to preserve the flash from further wearout.

Types of history entries stored in the ioDimm's non-volatile data segment.

Enumerator:
FIO_IODIMM_HISTORY_TYPE_UNKNOWN 
FIO_IODIMM_HISTORY_TYPE_CAPACITY 

Entries represent fio_iodimm_capacity_entry_t structs.

FIO_IODIMM_HISTORY_TYPE_PHYSICAL_READS 

Entries represent fio_iodimm_usage_entry_t structs.

FIO_IODIMM_HISTORY_TYPE_PHYSICAL_WRITES 

Entries represent fio_iodimm_usage_entry_t structs.

FIO_IODIMM_HISTORY_TYPE_FPGA_TEMPERATURE 

Entries represent fio_iodimm_temperature_entry_t structs.

FIO_IODIMM_HISTORY_TYPE_BOARD_TEMPERATURE 

Entries represent fio_iodimm_temperature_entry_t structs.

FIO_IODIMM_HISTORY_TYPE_MAX 

Hardware alert bitfield definition.

Enumerator:
FIO_HW_ALERT_NONE 
FIO_HW_ALERT_TEMPERATURE 

Temperature threshold exceeded.

FIO_HW_ALERT_VCCINT 

Internal voltage threshold exceeded.

FIO_HW_ALERT_VCCAUX 

Auxiliary voltage threshold exceeded.

FIO_HW_ALERT_OVERTEMP 

Extreme temperature threshold exceeded.

Settings for an LED.

Enumerator:
FIO_IODIMM_LED_STATUS_OFF 

LED is off

FIO_IODIMM_LED_STATUS_ON 

LED is on

FIO_IODIMM_LED_STATUS_BLINK 

LED is blinking at a fixed interval

Reasons that an ioDimm may have gone into minimal mode.

Enumerator:
FIO_MINMODE_REASON_UNKNOWN 

Reason unknown, or the device is not currently in minimal mode

FIO_MINMODE_REASON_FW_OUT_OF_DATE 

Firmware is out of date

FIO_MINMODE_REASON_INSUFFICIENT_POWER 

Adapter power needs to be plugged in

FIO_MINMODE_REASON_DUAL_PLANE_FAIL 

Could not enter dual-plane mode, although user-specified

FIO_MINMODE_REASON_FORCED 

Forced into minimal mode by the user (module parameter)

FIO_MINMODE_REASON_INTERNAL 

Internal error forced the device into minimal mode

FIO_MINMODE_REASON_CARD_LIMIT_EXCEEDED 

Product-specific device limit has been exceeded in this machine

FIO_MINMODE_REASON_NOT_IN_MINMODE 

Not currently in minimal mode.

FIO_MINMODE_REASON_UNSUPPORTED_OS 

The device will not function on this operating system.

FIO_MINMODE_REASON_INSUFFICIENT_MEMORY 

There is not enough memory to load the driver

FIO_MINMODE_REASON_SMP_BOOTLOADER_MODE 

SMP is in bootloader mode

Peak values that can be cleared. These can be OR'd together to clear multiples at once.

Enumerator:
FIO_PEAKS_NONE 

No peaks

FIO_PEAKS_MAX_VOLTS 

Maximum volts peak

FIO_PEAKS_MIN_VOLTS 

Minimum volts peak

FIO_PEAKS_MAX_WATTS 

Maximum watts peak

FIO_PEAKS_ALL 

All peaks

Enumeration of potential results of a preallocation setting attempt.

Enumerator:
FIO_IODIMM_PREALLOC_SUCCESS 

Successfully carried out request

FIO_IODIMM_PREALLOC_DEVICE_NOT_FOUND 

Could not find the device indicated by the selector.

FIO_IODIMM_PREALLOC_FAILED 

Internal failure occurred while attempting to set preallocation state.

FIO_IODIMM_PREALLOC_FAILED_PERM 

User does not have permission to attach device.

FIO_IODIMM_PREALLOC_FAILED_NOT_IMPLEMENTED 

Reserved for internal use.

FIO_IODIMM_PREALLOC_FAILED_NOT_INITIALIZED 

fio_sdk_init must be called prior to this operation.

FIO_IODIMM_PREALLOC_INVALID_INPUT 

Invalid input parameters

Device selector mode enumeration. This is used when opening a device handle to indicate how the handle will be opened.

Enumerator:
FIO_IODIMM_SELECT_NAME 

Select a device by its name. ex: /dev/fct0. This mode is only available when the driver is loaded.

FIO_IODIMM_SELECT_INDEX 

Select a device by index. ex: 0 = /dev/fct0. This mode is only available when the driver is loaded.

FIO_IODIMM_SELECT_HANDLE 

DEPRECATED. Prior to SDK v 3: Not used explicitly. If you open a device via open_iodimm_handle, the device selector is converted to this selection mode, indicating to the SDK that the handle is already opened. This mode is also incremented to keep track of how many times it has been opened. Attempting to compare against this value will lead to inconsistent results.

FIO_IODIMM_SELECT_PCI 

(Linux Only) Select a device by its PCI address (domain, bus, device and function). Only a small number of functions support this selector mode and functions supporting this mode will be documented as supporting PCI based selectors. This mode is only available when the driver is NOT loaded.

FIO_IODIMM_SELECT_PCI_STRING 

(Linux Only) Select a device by the string version of its PCI address. ex: 6:0:0.0. Only a small number of functions support this selector mode and functions supporting this mode will be documented as supporting PCI based selectors. This mode is only available when the driver is NOT loaded.

Enumeration of states that the ioDimm may be in.

Enumerator:
FIO_IODIMM_STATE_DETACHED 

Device is currently detached

FIO_IODIMM_STATE_ATTACHING 

Device is performing an attach operation

FIO_IODIMM_STATE_SCANNING_METADATA 

Device is scanning its metadata during an attach operation

FIO_IODIMM_STATE_SCANNING_DATA 

Device is scanning its data during an attach operation

FIO_IODIMM_STATE_ATTACHED 

Device is currently attached and operational

FIO_IODIMM_STATE_DETACHING 

Device is performing a detach operation

FIO_IODIMM_STATE_STOPPING 

Device is in the process of shutting down

FIO_IODIMM_STATE_STOPPED 

Device has been shut down

FIO_IODIMM_STATE_MINIMAL 

Device is running in a minimal state. See FIO_MINMODE_REASON enum

FIO_IODIMM_STATE_FAILED 

Device has had an internal failure and is not operational

FIO_IODIMM_STATE_UNKNOWN 

Device state could not be determined

Results of a firmware update request.

Enumerator:
FIO_IODIMM_UPDATE_SUCCESS 

Successfully updated the device. A warm reboot is required

FIO_IODIMM_UPDATE_DEVICE_NOT_FOUND 

Could not find the device pointed to by the ioDimm selector.

FIO_IODIMM_UPDATE_FFF_FILE_NOT_FOUND 

Could not find the specified firmware file

FIO_IODIMM_UPDATE_FFF_PART_NOT_FOUND 

The FFF file is valid, but no firmware was found for the device's part number

FIO_IODIMM_UPDATE_INVALID_FFF_FORMAT 

The FFF file is not in a valid format.

FIO_IODIMM_UPDATE_EEPROM_READ_FAIL 

Could not read the part number from the ioDimm

FIO_IODIMM_UPDATE_FIRMWARE_READ_FAIL 

Could not read the firmware version. This is reported as an error only if force is not enabled.

FIO_IODIMM_UPDATE_OLD_VERSION 

Selected FFF file was not loaded because it is an older firmware version than what is currently loaded.

FIO_IODIMM_UPDATE_CUR_VERSION 

Selected FFF file was not loaded because it is the same version as what is currently loaded.

FIO_IODIMM_UPDATE_DRIVER_INVALID_STATE 

Driver is not in a valid state to allow a firmware upload to occur.

FIO_IODIMM_UPDATE_FAILURE 

Internal failure occurred while updating

FIO_IODIMM_UPDATE_FAILURE_PERM 

User does not have permission to update the ioDimm

FIO_IODIMM_UPDATE_IOCTL_LOCK_FAILURE 

Device is locked for updating by a different process

FIO_IODIMM_UPDATE_SUCCESS_COLD_REBOOT 

Device update success. A cold reboot is now required.

FIO_IODIMM_UPDATE_NOT_IMPLEMENTED 

Reserved for internal use.

FIO_IODIMM_UPDATE_SUCCESS_NO_REBOOT 

Device update success. No reboot is required.

FIO_IODIMM_UPDATE_SMP_NO_BOOTMODE 

Unable to put SMP into bootmode

FIO_IODIMM_UPDATE_SMP_NO_SMP 

Unable to locate SMP

FIO_IODIMM_UPDATE_SMP_FAILURE 

SMP update failure

FIO_IODIMM_UPDATE_INVALID_INPUT 

Invalid parameters.

FIO_IODIMM_UPDATE_UNSAFE 

Upgrading from the current version to the proposed version is unsafe for user data.

FIO_IODIMM_UPDATE_ECC_MISMATCH 

Device and new firmware ECC lengths don't match.

FIO_IODIMM_UPDATE_ECC_ERROR 

Failed to read ECC information.

Levels of write throttling that an ioDimm may enter.

Enumerator:
FIO_WRITE_THROTTLE_NONE 

Device is not currently throttling writes

FIO_WRITE_THROTTLE_PARTIAL 

Device is throttling writes to a very low speed

FIO_WRITE_THROTTLE_COMPLETE 

Device has stopped all writes

Reasons why an ioDimm may begin write throttling.

Enumerator:
FIO_WRITE_THROTTLE_REASON_NONE 
FIO_WRITE_THROTTLE_REASON_USER 

User call caused the current write-throttling mode.

FIO_WRITE_THROTTLE_REASON_NO_MD_BLOCKS 

Out of metadata blocks

FIO_WRITE_THROTTLE_REASON_NOMEM 

Out of memory (RAM)

FIO_WRITE_THROTTLE_REASON_DEAD_DIE 

Dead chip die or permanent parity substitution

FIO_WRITE_THROTTLE_REASON_WEAROUT 

Too many failed LEBs to continue unthrottled

FIO_WRITE_THROTTLE_REASON_ADAPTER_POWER 

Adapter power isn't plugged in. Note: This is not the behavior for all devices; some devices start up in minimal mode n this case.

FIO_WRITE_THROTTLE_REASON_INTERNAL 

Internal failure caused throttled mode

FIO_WRITE_THROTTLE_REASON_LIMIT_POWER 

Attempt to minimize power consumption

FIO_WRITE_THROTTLE_REASON_GROOM_FAILS 

Groomer could not free enough blocks to continue.

Generated on Sun Oct 24 15:03:00 2010 for Fusion-io Device Management Public SDK by  doxygen 1.6.3