| 
1 | 1 | # Unreleased  | 
2 | 2 | 
 
  | 
 | 3 | +# 0.14.4 – 2021-07-19  | 
 | 4 | + | 
 | 5 | +- Add `instructions::tables::sgdt` ([#279](https://github.com/rust-osdev/x86_64/pull/279))  | 
 | 6 | +- Improve control register bits ([#273](https://github.com/rust-osdev/x86_64/pull/273))  | 
 | 7 | +  - Add `Cr0` bits: `EXTENSION_TYPE` (ET)  | 
 | 8 | +  - Add `Cr4` bits:  | 
 | 9 | +    - `KEY_LOCKER` (KL)  | 
 | 10 | +    - `CONTROL_FLOW_ENFORCEMENT` (CET)  | 
 | 11 | +    - `PROTECTION_KEY_SUPERVISOR` (PKS)  | 
 | 12 | +  - Add `XCr0` bits: `BNDREG`, `BNDCSR`, `OPMASK`, `ZMM_HI256`, `HI16_ZMM`  | 
 | 13 | +  - Add consistency checks for `XCr0` bits  | 
 | 14 | +- Add `SelectorErrorCode` for parsing interrupt error codes from `#TS`, `#NP`, `#SS`, and `#GP` ([#274](https://github.com/rust-osdev/x86_64/pull/274))  | 
 | 15 | +- Make `addr::{align_up,  align_down}` const ([#270](https://github.com/rust-osdev/x86_64/pull/270))  | 
 | 16 | +- Make `structures::idt` available on stable Rust ([#271](https://github.com/rust-osdev/x86_64/pull/271))  | 
 | 17 | +  - Use dummy types for the `HandlerFunc`s if the `"abi_x86_interrupt"` feature is disabled  | 
 | 18 | +  - Add unsafe `set_handler_addr` that just takes a `VirtAddr`  | 
 | 19 | +- Add common abstractions for x86 Segments ([#258](https://github.com/rust-osdev/x86_64/pull/258))  | 
 | 20 | +  - Add `SS`, `CS`, `DS`, `ES`, `FS`, `GS` marker types  | 
 | 21 | +  - Add `Segment` trait for reading/writing the segment register  | 
 | 22 | +  - Add `Segment64` trait for reading/writing the segment base  | 
 | 23 | +  - Add `GS::swap()`  | 
 | 24 | +  - Deprecate the corresponding free functions:  | 
 | 25 | +    - `cs`, `set_cs`  | 
 | 26 | +    - `swap_gs`  | 
 | 27 | +    - `load_{ss,ds,es,fs,gs}`  | 
 | 28 | +    - `{wr,rd}{fs,gs}base`  | 
 | 29 | +- Bug fixes:  | 
 | 30 | +  - Corrected documentation typo ([#278](https://github.com/rust-osdev/x86_64/pull/278))  | 
 | 31 | +  - Avoided off-by-one error in `GlobalDescriptorTable::from_raw_slice` when `"const_fn"` is not enabled ([#269](https://github.com/rust-osdev/x86_64/pull/269))  | 
 | 32 | +  - Specify `sysv64` as the calling convention for the `"external_asm"` functions ([#267](https://github.com/rust-osdev/x86_64/pull/267))  | 
 | 33 | + | 
3 | 34 | # 0.14.3 – 2021-05-14  | 
4 | 35 | 
 
  | 
5 | 36 | - Make the following types aliases of the new `PortGeneric` type ([#248](https://github.com/rust-osdev/x86_64/pull/248)):  | 
6 | 37 |   - `Port<T> = PortGeneric<T, ReadWriteAccess>`  | 
7 | 38 |   - `PortReadOnly<T> = PortGeneric<T, ReadOnlyAccess>`  | 
8 | 39 |   - `PortWriteOnly<T> = PortGeneric<T, WriteOnlyAccess>`  | 
9 |  | -- The following methods no longer require the `nightly` feature to be `const fn`s` ([#255](https://github.com/rust-osdev/x86_64/pull/255)):  | 
 | 40 | +- The following methods no longer require the `nightly` feature to be `const fn`s ([#255](https://github.com/rust-osdev/x86_64/pull/255)):  | 
10 | 41 |   - `PageTable::new`  | 
11 | 42 |   - `GlobalDescriptorTable::from_raw_slice`  | 
12 | 43 |   - `MappedFrame::{start_address, size}`  | 
 | 
0 commit comments