diff options
author | Chuck Tuffli <chuck@FreeBSD.org> | 2018-08-22 04:29:24 +0000 |
---|---|---|
committer | Chuck Tuffli <chuck@FreeBSD.org> | 2018-08-22 04:29:24 +0000 |
commit | 9544e6dcf1f338af481614dc5daf232e1ed5860b (patch) | |
tree | 6fdb66a56676d2112c97b1dc6282b2632a86dbd6 /sys/sys/param.h | |
parent | d3878608d735ec8610b04e3f2195a436c7f56e15 (diff) | |
download | src-9544e6dcf1f338af481614dc5daf232e1ed5860b.tar.gz src-9544e6dcf1f338af481614dc5daf232e1ed5860b.zip |
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
Notes
Notes:
svn path=/head/; revision=338182
Diffstat (limited to 'sys/sys/param.h')
-rw-r--r-- | sys/sys/param.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/sys/param.h b/sys/sys/param.h index 2a09cf2f6228..3ae57eaf6c90 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1200080 /* Master, propagated to newvers */ +#define __FreeBSD_version 1200081 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, |