freebsd-dev/sbin/nvmecontrol
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
..
devlist.c Add NVMe Namespace Management support to nvmecontrol(8). 2018-05-05 20:08:03 +00:00
firmware.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
format.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
identify_ext.c Make it possible to use print_controller from another program 2018-06-13 22:00:02 +00:00
identify.c Make it possible to use print_controller from another program 2018-06-13 22:00:02 +00:00
logpage.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
Makefile Make it possible to use print_controller from another program 2018-06-13 22:00:02 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
nc_util.c Make it possible to use print_controller from another program 2018-06-13 22:00:02 +00:00
ns.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvmecontrol_ext.h Make it possible to use print_controller from another program 2018-06-13 22:00:02 +00:00
nvmecontrol.8 Add nvmecontrol format subcommand. 2018-03-13 03:02:09 +00:00
nvmecontrol.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvmecontrol.h Add NVMe Namespace Management support to nvmecontrol(8). 2018-05-05 20:08:03 +00:00
perftest.c NVMe: Add big-endian support 2018-02-22 13:32:31 +00:00
power.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
reset.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
wdc.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00