Loading...
Searching...
No Matches
spdk_fsdev_fn_table Struct Reference

Function table for a filesystem device backend. More...

#include <fsdev_module.h>

Data Fields

int(* destruct )(void *ctx)
 Destroy the backend filesystem device object.
 
void(* submit_request )(struct spdk_io_channel *ch, struct spdk_fsdev_io *)
 Process the I/O request.
 
struct spdk_io_channel *(* get_io_channel )(void *ctx)
 Get an I/O channel for the specific fsdev for the calling thread.
 
int(* negotiate_opts )(void *ctx, struct spdk_fsdev_open_opts *opts)
 Negotiate fsdev device options.
 
void(* write_config_json )(struct spdk_fsdev *fsdev, struct spdk_json_write_ctx *w)
 Output fsdev-specific RPC configuration to a JSON stream.
 
int(* get_memory_domains )(void *ctx, struct spdk_memory_domain **domains, int array_size)
 Get memory domains used by fsdev.
 

Detailed Description

Function table for a filesystem device backend.

The backend filesystem device function table provides a set of APIs to allow communication with a backend.

Field Documentation

◆ get_memory_domains

int(* spdk_fsdev_fn_table::get_memory_domains) (void *ctx, struct spdk_memory_domain **domains, int array_size)

Get memory domains used by fsdev.

Optional - may be NULL. Vfsdev module implementation should call spdk_fsdev_get_memory_domains for underlying fsdev. Vfsdev module must inspect types of memory domains returned by base fsdev and report only those memory domains that it can work with.

◆ negotiate_opts

int(* spdk_fsdev_fn_table::negotiate_opts) (void *ctx, struct spdk_fsdev_open_opts *opts)

Negotiate fsdev device options.

The function validates the desired options and adjust them to reflect it own capabilities. The module can only reduce the requested cababilities.

Returns
0 on success or Fsdev specific negative error code.

◆ write_config_json

void(* spdk_fsdev_fn_table::write_config_json) (struct spdk_fsdev *fsdev, struct spdk_json_write_ctx *w)

Output fsdev-specific RPC configuration to a JSON stream.

Optional - may be NULL.

The JSON write context will be initialized with an open object, so the fsdev driver should write all data necessary to recreate this fsdev by invoking constructor method. No other data should be written.


The documentation for this struct was generated from the following file:
  • fsdev_module.h