chuck fa895cb8d2 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
..
2018-08-13 16:26:26 +00:00
2017-10-31 00:07:04 +00:00
2017-10-31 00:07:04 +00:00
2017-10-31 00:07:04 +00:00
2018-08-11 13:23:09 +00:00
2018-08-11 14:45:33 +00:00
2018-06-10 02:30:09 +00:00
2018-08-19 07:12:35 +00:00
2017-11-30 20:33:45 +00:00
2018-01-05 08:29:32 +00:00
2018-06-06 18:52:33 +00:00
2018-08-12 13:29:40 +00:00
2018-05-28 09:41:44 +00:00
2017-12-28 05:34:04 +00:00
2018-01-02 16:50:57 +00:00
2017-10-31 00:07:04 +00:00
2018-05-23 09:46:21 +00:00
2018-02-23 17:20:53 +00:00
2018-05-19 20:57:22 +00:00
2017-10-31 00:07:04 +00:00
2018-08-21 02:38:07 +00:00
2018-06-13 09:17:04 +00:00
2018-06-17 17:31:16 +00:00
2018-03-17 12:59:55 +00:00
2018-03-19 05:49:26 +00:00
2018-05-11 00:01:43 +00:00
2018-02-08 14:53:34 +00:00
2017-10-31 00:07:04 +00:00
2018-06-15 17:44:21 +00:00
2018-06-15 17:44:21 +00:00
2018-07-24 20:20:17 +00:00