Spdk/include/spdk
Shuhei Matsumoto 139da44c43 lib/bdev: Expose metadata size and setting of bdev
To support DIF, bdev will need to expose the following information:
- Metadata format
 - Block size
 - Metadata size
 - Metadata setting (interleave or separate)
- DIF settings
 - DIF type 1, 2, or 3
 - DIF location
- DIF check types
 - Guard check
 - Reference tag check
 - Application tag check

This patch is for the metadata format. Subsequent patches will do for the DIF
setting and DIF check types.

Add fields, md_len and md_interleave, to struct spdk_bdev and add APIs,
spdk_bdev_get_md_size and spdk_bdev_is_md_interleaved, to bdev APIs.

The fields, md_len and md_interleave, are added to the bdev JSON infomation dump.

DIF will be used only in the NVMe bdev module and the upcoming virtual
DIF bdev module first. But additional required storage by md_len and md_interleave
will be very small and they are simple. Hence add them to struct spdk_bdev simply.

Change-Id: I4109f6a63e6f0576efe424feb0305a9a17b9b2e8
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/c/443183
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-02-08 23:37:13 +00:00
..
assert.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
barrier.h barrier.h: fix load fence on armv8 2018-11-02 19:15:56 +00:00
base64.h util/base64: add base64 lib and unit tests 2018-07-19 00:50:54 +00:00
bdev_module.h lib/bdev: Expose metadata size and setting of bdev 2019-02-08 23:37:13 +00:00
bdev.h lib/bdev: Expose metadata size and setting of bdev 2019-02-08 23:37:13 +00:00
bit_array.h util: added bit array bitmask load, store and clear 2018-12-14 15:34:53 +00:00
blob_bdev.h bdev: rename spdk_bdev_module_if -> spdk_bdev_module 2018-03-13 00:55:12 -04:00
blob.h lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
blobfs.h blobfs: add a new API to return file's unique ID 2018-08-29 16:29:22 +00:00
conf.h include/conf: add comments for public APIs 2018-02-26 11:59:09 -05:00
copy_engine.h include/copy_engine.h: add comments for callback functions 2018-05-28 01:45:03 +00:00
cpuset.h doc: fix a bunch of parameter-related Doxygen comments 2018-06-19 17:29:06 +00:00
crc16.h util/crc16: Add spdk_crc16_t10dif_copy to use in read strip and write insert 2018-12-20 17:52:29 +00:00
crc32.h util: Move architecture detection to crc32c.c 2019-02-04 19:14:22 +00:00
dif.h dif: Fix opposite definition of DIF location parameter from SPDK NVMe API 2019-01-17 17:12:01 +00:00
endian.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
env_dpdk.h env: add spdk_env_dpdk_post_init 2019-01-08 13:28:31 +00:00
env.h OCF: use rte_pause in wait loop 2019-01-28 19:24:13 +00:00
event.h parse: add return value to app_parse callback 2019-01-18 10:08:09 +00:00
fd.h include/fd.h: add comments for pubclic APIs 2018-01-04 12:12:10 -05:00
ftl.h lib/ftl: Remove NULL pointer checks in external APIs 2019-02-08 16:35:34 +00:00
gpt_spec.h bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
histogram_data.h histograms: add function to merge histograms 2018-11-15 23:03:26 +00:00
io_channel.h thread: Rename io_channel.h to thread.h 2018-06-12 15:24:07 +00:00
ioat_spec.h ioat: clear the internal channel error register on reset 2018-08-13 16:59:18 +00:00
ioat.h ioat: change return type of spdk_ioat_detach() to be void 2018-09-11 21:16:48 +00:00
iscsi_spec.h iscsi: fix layout of logout request reason field 2017-09-22 16:11:11 -04:00
json.h json: add utilities function enabling itaration over JSON object 2018-10-18 16:07:37 +00:00
jsonrpc.h jsonrpc: add connection close callback 2019-01-10 14:31:37 +00:00
likely.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
log.h log: remove "trace" from public API 2018-12-03 19:50:15 +00:00
lvol.h lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
mmio.h mmio: add functions for 1 and 2 byte I/O accesses 2017-10-13 10:46:00 -04:00
nbd.h nbd: Make spdk_nbd_start asynchronous 2018-11-21 21:12:06 +00:00
net.h net: make the net initialization in a correct way 2018-12-20 01:37:50 +00:00
nvme_intel.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
nvme_ocssd_spec.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_ocssd.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_spec.h nvme: add reservation notificaiton log page and mask definition 2019-01-12 03:25:46 +00:00
nvme.h nvme: Add a function to query controller memory buffer support 2019-02-06 16:01:56 +00:00
nvmf_fc_spec.h nvmf: FC-NVMe spec. header file 2018-07-06 22:49:20 +00:00
nvmf_spec.h nvme: Add the NVMe over fabrics TCP/IP transport support 2018-11-19 20:36:05 +00:00
nvmf.h nvmf: Add mechanism to override nvmf pd/mr behavior 2019-01-30 19:03:35 +00:00
pci_ids.h nvme: add chk_rdy quirk for some Samsung drives 2018-07-14 01:47:47 +00:00
queue_extras.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
queue.h check_format: Verify #include syntax 2019-01-29 00:12:07 +00:00
reduce.h reduce: remove close callback 2019-01-16 22:25:13 +00:00
rpc.h rpc: add spdk_rpc_is_method_allowed 2018-12-05 00:35:35 +00:00
scsi_spec.h scsi: add iSCSI initiator port TransportID 2018-12-05 16:04:06 +00:00
scsi.h scsi: Set TMF code prior to calling spdk_scsi_dev_queue_mgmt_task 2018-12-10 20:34:11 +00:00
sock.h sock: Update the spdk_sock_getaddr function. 2018-10-11 04:58:49 +00:00
stdinc.h ftl: Added unit tests for FTL library 2019-01-22 23:22:16 +00:00
string.h string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
thread.h thread: Rename spdk_free_thread to spdk_thread_exit 2019-01-17 11:24:38 +00:00
trace.h lib/trace: add trace_record tool 2019-01-30 06:36:25 +00:00
util.h util: added spdk_divide_round_up() 2018-12-18 17:26:49 +00:00
uuid.h util/uuid: add a new uuid copy API. 2018-12-06 22:25:09 +00:00
version.h version: 19.04 pre 2019-02-01 09:29:12 +00:00
vhost.h vhost: remove vhost external events 2019-02-06 19:04:21 +00:00