Event framework public API. More...
Data Structures | |
struct | spdk_app_opts |
Event framework initialization options. More... | |
Macros | |
#define | SPDK_APP_GETOPT_STRING "c:de:ghi:m:n:p:r:s:uvA:B:L:RW:" |
Typedefs | |
typedef void(* | spdk_event_fn) (void *arg1, void *arg2) |
Event handler function. More... | |
typedef void(* | spdk_app_shutdown_cb) (void) |
Callback function for customized shutdown handling of application. | |
typedef void(* | spdk_sighandler_t) (int signal) |
Signal handler function. More... | |
typedef enum spdk_app_parse_args_rvals | spdk_app_parse_args_rvals_t |
Enumerations | |
enum | spdk_app_parse_args_rvals { SPDK_APP_PARSE_ARGS_HELP = 0 , SPDK_APP_PARSE_ARGS_SUCCESS = 1 , SPDK_APP_PARSE_ARGS_FAIL = 2 } |
Functions | |
SPDK_STATIC_ASSERT (sizeof(struct spdk_app_opts)==224, "Incorrect size") | |
void | spdk_app_opts_init (struct spdk_app_opts *opts, size_t opts_size) |
Initialize the default value of opts. More... | |
int | spdk_app_start (struct spdk_app_opts *opts_user, spdk_msg_fn start_fn, void *ctx) |
Start the framework. More... | |
void | spdk_app_fini (void) |
Perform final shutdown operations on an application using the event framework. | |
void | spdk_app_start_shutdown (void) |
Start shutting down the framework. More... | |
void | spdk_app_stop (int rc) |
Stop the framework. More... | |
int | spdk_app_get_shm_id (void) |
Return the shared memory id for this application. More... | |
int | spdk_app_parse_core_mask (const char *mask, struct spdk_cpuset *cpumask) |
Convert a string containing a CPU core mask into a bitmask. More... | |
const struct spdk_cpuset * | spdk_app_get_core_mask (void) |
Get the mask of the CPU cores active for this application. More... | |
spdk_app_parse_args_rvals_t | spdk_app_parse_args (int argc, char **argv, struct spdk_app_opts *opts, const char *getopt_str, const struct option *app_long_opts, int(*parse)(int ch, char *arg), void(*usage)(void)) |
Helper function for parsing arguments and printing usage messages. More... | |
void | spdk_app_usage (void) |
Print usage strings for common SPDK command line options. More... | |
struct spdk_event * | spdk_event_allocate (uint32_t lcore, spdk_event_fn fn, void *arg1, void *arg2) |
Allocate an event to be passed to spdk_event_call(). More... | |
void | spdk_event_call (struct spdk_event *event) |
Pass the given event to the associated lcore and call the function. More... | |
void | spdk_framework_enable_context_switch_monitor (bool enabled) |
Enable or disable monitoring of context switches. More... | |
bool | spdk_framework_context_switch_monitor_enabled (void) |
Return whether context switch monitoring is enabled. More... | |
Event framework public API.
See SPDK Event Framework Components for an overview of the SPDK event framework API.
typedef void(* spdk_event_fn) (void *arg1, void *arg2) |
Event handler function.
arg1 | Argument 1. |
arg2 | Argument 2. |
typedef void(* spdk_sighandler_t) (int signal) |
Signal handler function.
signal | Signal number. |
const struct spdk_cpuset* spdk_app_get_core_mask | ( | void | ) |
Get the mask of the CPU cores active for this application.
int spdk_app_get_shm_id | ( | void | ) |
Return the shared memory id for this application.
void spdk_app_opts_init | ( | struct spdk_app_opts * | opts, |
size_t | opts_size | ||
) |
Initialize the default value of opts.
opts | Data structure where SPDK will initialize the default options. |
opts_size | Must be set to sizeof(struct spdk_app_opts). |
spdk_app_parse_args_rvals_t spdk_app_parse_args | ( | int | argc, |
char ** | argv, | ||
struct spdk_app_opts * | opts, | ||
const char * | getopt_str, | ||
const struct option * | app_long_opts, | ||
int(*)(int ch, char *arg) | parse, | ||
void(*)(void) | usage | ||
) |
Helper function for parsing arguments and printing usage messages.
argc | Count of arguments in argv parameter array. |
argv | Array of command line arguments. |
opts | Default options for the application. |
getopt_str | String representing the app-specific command line parameters. Characters in this string must not conflict with characters in SPDK_APP_GETOPT_STRING. |
app_long_opts | Array of full-name parameters. Can be NULL. |
parse | Function pointer to call if an argument in getopt_str is found. |
usage | Function pointer to print usage messages for app-specific command line parameters. |
int spdk_app_parse_core_mask | ( | const char * | mask, |
struct spdk_cpuset * | cpumask | ||
) |
Convert a string containing a CPU core mask into a bitmask.
mask | String containing a CPU core mask. |
cpumask | Bitmask of CPU cores. |
int spdk_app_start | ( | struct spdk_app_opts * | opts_user, |
spdk_msg_fn | start_fn, | ||
void * | ctx | ||
) |
Start the framework.
Before calling this function, opts must be initialized by spdk_app_opts_init(). Once started, the framework will call start_fn on an spdk_thread running on the current system thread with the argument provided.
If opts->delay_subsystem_init is set (e.g. through –wait-for-rpc flag in spdk_app_parse_args()) this function will only start a limited RPC server accepting only a few RPC commands - mostly related to pre-initialization. With this option, the framework won't be started and start_fn won't be called until the user sends an rpc_framework_start_init
RPC command, which marks the pre-initialization complete and allows start_fn to be finally called.
This call will block until spdk_app_stop() is called. If an error condition occurs during the initialization code within spdk_app_start(), this function will immediately return before invoking start_fn.
opts_user | Initialization options used for this application. It should not be NULL. And the opts_size value inside the opts structure should not be zero. |
start_fn | Entry point that will execute on an internally created thread once the framework has been started. |
ctx | Argument passed to function start_fn. |
void spdk_app_start_shutdown | ( | void | ) |
Start shutting down the framework.
Typically this function is not called directly, and the shutdown process is started implicitly by a process signal. But in applications that are using SPDK for a subset of its process threads, this function can be called in lieu of a signal.
void spdk_app_stop | ( | int | rc | ) |
Stop the framework.
This does not wait for all threads to exit. Instead, it kicks off the shutdown process and returns. Once the shutdown process is complete, spdk_app_start() will return.
rc | The rc value specified here will be returned to caller of spdk_app_start(). |
void spdk_app_usage | ( | void | ) |
Print usage strings for common SPDK command line options.
May only be called after spdk_app_parse_args().
struct spdk_event* spdk_event_allocate | ( | uint32_t | lcore, |
spdk_event_fn | fn, | ||
void * | arg1, | ||
void * | arg2 | ||
) |
Allocate an event to be passed to spdk_event_call().
lcore | Lcore to run this event. |
fn | Function used to execute event. |
arg1 | Argument passed to function fn. |
arg2 | Argument passed to function fn. |
void spdk_event_call | ( | struct spdk_event * | event | ) |
Pass the given event to the associated lcore and call the function.
event | Event to execute. |
bool spdk_framework_context_switch_monitor_enabled | ( | void | ) |
Return whether context switch monitoring is enabled.
void spdk_framework_enable_context_switch_monitor | ( | bool | enabled | ) |
Enable or disable monitoring of context switches.
enabled | True to enable, false to disable. |