freebsd-skq/sys/dev/nvme
Chuck Tuffli 9544e6dcf1 Make NVMe compatible with the original API
The original NVMe API used bit-fields to represent fields in data
structures defined by the specification (e.g. the op-code in the command
data structure). The implementation targeted x86_64 processors and
defined the bit fields for little endian dwords (i.e. 32 bits).

This approach does not work as-is for big endian architectures and was
changed to use a combination of bit shifts and masks to support PowerPC.
Unfortunately, this changed the NVMe API and forces #ifdef's based on
the OS revision level in user space code.

This change reverts to something that looks like the original API, but
it uses bytes instead of bit-fields inside the packed command structure.
As a bonus, this works as-is for both big and little endian CPU
architectures.

Bump __FreeBSD_version to 1200081 due to API change

Reviewed by: imp, kbowling, smh, mav
Approved by: imp (mentor)
Differential Revision: https://reviews.freebsd.org/D16404
2018-08-22 04:29:24 +00:00
..
nvme_ctrlr_cmd.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme_ctrlr.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme_ns_cmd.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme_ns.c Set si_drv1 for nvmeXnsY in a new race-free way. 2018-04-30 19:21:20 +00:00
nvme_private.h Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme_qpair.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme_sim.c Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme_sysctl.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_test.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_util.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme.h Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00