Spdk/include/spdk
Daniel Verkamp 4a1d47ebea barrier: add compiler barrier and use it in MMIO
spdk_compiler_barrier() prevents the compiler from moving pointer
dereferences across the barrier.

Use this in the MMIO helper functions to ensure that the compiler can't
reorder operations around e.g. hardware register access.

Specifically, this fixes the compiler optimizing out writes to
g_thread_mmio_ctrlr in the NVMe hotplug handling code.

Change-Id: I6b9cec48da0e6d8d75825c28b12ece5251110080
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-02-08 09:20:41 -07:00
..
assert.h assert.h: document SPDK_STATIC_ASSERT 2017-01-05 11:57:18 -07:00
barrier.h barrier: add compiler barrier and use it in MMIO 2017-02-08 09:20:41 -07:00
bdev.h bdev: add API to translate to and from NVMe status 2017-01-19 09:39:26 -07:00
bit_array.h util: add bit array data structure 2016-09-15 15:47:56 -07:00
conf.h conf: move structures out of public API header 2016-11-16 10:33:16 -07:00
copy_engine.h copy_engine: rename spdk_copy_module_get_max_ctx_size() to spdk_copy_task_size() 2016-11-16 15:04:40 -07:00
endian.h endian: constify from_* functions 2016-11-16 10:30:04 -07:00
env.h env: add API to get NUMA socket ID of a PCI device 2017-01-31 14:50:18 -07:00
event.h event: move component descriptions to doc/ and rewrite 2017-01-31 14:50:29 -07:00
fd.h Rename and move fd related helper functions to fd.c. 2016-09-14 10:51:25 -07:00
gpt_spec.h Add GPT (GUID partition table) spec header 2016-08-24 09:41:05 -07:00
io_channel.h util: add stdbool.h include to io_channel.h 2016-09-30 15:30:25 -07:00
ioat_spec.h ioat_spec.h: rename xor to avoid C++ keyword collision 2016-09-21 09:37:43 -07:00
ioat.h env: Move pci.c from util to env 2016-10-05 11:53:24 -07:00
iscsi_spec.h iscsi: split spec definitions into iscsi_spec.h 2016-08-08 15:53:57 -07:00
json.h json: add printf-style spdk_json_write_string_fmt() 2016-11-22 16:32:35 -07:00
jsonrpc.h jsonrpc_server: allow user to specify socket type 2016-12-15 08:06:33 -07:00
likely.h likely.h: fix spdk_likely condition 2016-12-15 13:01:08 -07:00
log.h log: use facilitynames to set/get log facility (#81) 2017-01-17 11:20:34 -07:00
mmio.h barrier: add compiler barrier and use it in MMIO 2017-02-08 09:20:41 -07:00
net.h net: include stdint.h for uint*_t types 2016-10-03 08:41:37 -07:00
nvme_intel.h spdk: Add Intel specific log page. 2016-05-05 13:39:14 +08:00
nvme_spec.h nvme: Change the deallocate interface to generic dsm 2016-10-04 14:36:09 -07:00
nvme.h nvme: mention TRID parsing function in struct docs 2017-01-20 15:10:58 -07:00
nvmf_spec.h nvmf: NVMe-oF 1.1 adds cntlid to RDMA private data 2017-01-23 16:46:55 -07:00
nvmf.h nvmf: poll the NVMe subsystem once under more sessions case 2017-02-07 14:54:28 -07:00
pci_ids.h ioat: add Skylake Xeon device ID 2017-01-19 09:39:59 -07:00
queue_extras.h Break out queue.h code pulled from FreeBSD into a separate file. 2015-09-25 12:45:04 -07:00
queue.h Add extern "C" wrapper to all public headers 2016-02-12 07:52:35 -07:00
rpc.h rpc: Add an RPC subsystem 2016-06-22 15:45:50 -07:00
scsi_spec.h scsi: translate nvme error to scsi error (#54) 2016-10-28 13:06:45 -07:00
scsi.h scsi: make the io channel of scsi lun free correct 2017-01-06 09:50:22 -07:00
string.h util: Add a function to parse ip addresses. 2017-02-07 17:12:38 -07:00
trace.h trace: hard-code lcore history array size 2016-07-22 12:50:44 -07:00