@@ -5,6 +5,74 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
6
6
## [ Unreleased]
7
7
8
+ ### Added
9
+ - Added specialized wrappers: ` sys::ptrace::{traceme, syscall, cont, attach} ` . Using the matching routines
10
+ with ` sys::ptrace::ptrace ` is now deprecated.
11
+ - Added ` nix::poll ` module for all platforms
12
+ ([ #672 ] ( https://github.com/nix-rust/nix/pull/672 ) )
13
+ - Added ` nix::ppoll ` function for FreeBSD and DragonFly
14
+ ([ #672 ] ( https://github.com/nix-rust/nix/pull/672 ) )
15
+ - Added protocol families in ` AddressFamily ` enum.
16
+ ([ #647 ] ( https://github.com/nix-rust/nix/pull/647 ) )
17
+ - Added the ` pid() ` method to ` WaitStatus ` for extracting the PID.
18
+ ([ #722 ] ( https://github.com/nix-rust/nix/pull/722 ) )
19
+ - Added ` nix::unistd:fexecve ` .
20
+ ([ #727 ] ( https://github.com/nix-rust/nix/pull/727 ) )
21
+ - Expose ` uname() ` on all platforms.
22
+ ([ #739 ] ( https://github.com/nix-rust/nix/pull/739 ) )
23
+ - Expose ` signalfd ` module on Android as well.
24
+ ([ #739 ] ( https://github.com/nix-rust/nix/pull/739 ) )
25
+ - Added nix::sys::ptrace::detach.
26
+ ([ #749 ] ( https://github.com/nix-rust/nix/pull/749 ) )
27
+ - Added timestamp socket control message variant:
28
+ ` nix::sys::socket::ControlMessage::ScmTimestamp `
29
+ ([ #663 ] ( https://github.com/nix-rust/nix/pull/663 ) )
30
+ - Added socket option variant that enables the timestamp socket
31
+ control message: ` nix::sys::socket::sockopt::ReceiveTimestamp `
32
+ ([ #663 ] ( https://github.com/nix-rust/nix/pull/663 ) )
33
+
34
+ ### Changed
35
+ - Renamed existing ` ptrace ` wrappers to encourage namespacing ([ #692 ] ( https://github.com/nix-rust/nix/pull/692 ) )
36
+ - Marked ` sys::ptrace::ptrace ` as ` unsafe ` .
37
+ - Changed function signature of ` socket() ` and ` socketpair() ` . The ` protocol ` argument
38
+ has changed type from ` c_int ` to ` SockProtocol ` .
39
+ It accepts a ` None ` value for default protocol that was specified with zero using ` c_int ` .
40
+ ([ #647 ] ( https://github.com/nix-rust/nix/pull/647 ) )
41
+ - Made ` select ` easier to use, adding the ability to automatically calculate the ` nfds ` parameter using the new
42
+ ` FdSet::highest ` ([ #701 ] ( https://github.com/nix-rust/nix/pull/701 ) )
43
+ - Exposed ` unistd::setresuid ` and ` unistd::setresgid ` on FreeBSD and OpenBSD
44
+ ([ #721 ] ( https://github.com/nix-rust/nix/pull/721 ) )
45
+ - Refactored the ` statvfs ` module removing extraneous API functions and the
46
+ ` statvfs::vfs ` module. Additionally ` (f)statvfs() ` now return the struct
47
+ directly. And the returned ` Statvfs ` struct now exposes its data through
48
+ accessor methods. ([ #729 ] ( https://github.com/nix-rust/nix/pull/729 ) )
49
+ - The ` addr ` argument to ` madvise ` and ` msync ` is now ` *mut ` to better match the
50
+ libc API. ([ #731 ] ( https://github.com/nix-rust/nix/pull/731 ) )
51
+ - ` shm_open ` and ` shm_unlink ` are no longer exposed on Android targets, where
52
+ they are not officially supported. ([ #731 ] ( https://github.com/nix-rust/nix/pull/731 ) )
53
+ - ` MapFlags ` , ` MmapAdvise ` , and ` MsFlags ` expose some more variants and only
54
+ officially-supported variants are provided for each target.
55
+ ([ #731 ] ( https://github.com/nix-rust/nix/pull/731 ) )
56
+ - Marked ` pty::ptsname ` function as ` unsafe `
57
+ ([ #744 ] ( https://github.com/nix-rust/nix/pull/744 ) )
58
+ - Moved constants ptrace request, event and options to enums and updated ptrace functions and argument types accordingly.
59
+ ([ #749 ] ( https://github.com/nix-rust/nix/pull/749 ) )
60
+ - ` AioCb::Drop ` will now panic if the ` AioCb ` is still in-progress ([ #715 ] ( https://github.com/nix-rust/nix/pull/715 ) )
61
+
62
+ # Fixed
63
+ - Fix compilation and tests for OpenBSD targets
64
+ ([ #688 ] ( https://github.com/nix-rust/nix/pull/688 ) )
65
+ - Fixed error handling in ` AioCb::fsync ` , ` AioCb::read ` , and ` AioCb::write ` .
66
+ It is no longer an error to drop an ` AioCb ` that failed to enqueue in the OS.
67
+ ([ #715 ] ( https://github.com/nix-rust/nix/pull/715 ) )
68
+
69
+ # Removed
70
+ - The syscall module has been removed. This only exposed enough functionality for
71
+ ` memfd_create() ` and ` pivot_root() ` , which are still exposed as separate functions.
72
+ ([ #747 ] ( https://github.com/nix-rust/nix/pull/747 ) )
73
+
74
+ ## [ 0.9.0] 2017-07-23
75
+
8
76
### Added
9
77
- Added ` sysconf ` , ` pathconf ` , and ` fpathconf `
10
78
([ #630 ] ( https://github.com/nix-rust/nix/pull/630 )
@@ -24,11 +92,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
24
92
and nix::Error::UnsupportedOperation}`
25
93
([ #614 ] ( https://github.com/nix-rust/nix/pull/614 ) )
26
94
- Added ` cfmakeraw ` , ` cfsetspeed ` , and ` tcgetsid ` . ([ #527 ] ( https://github.com/nix-rust/nix/pull/527 ) )
95
+ - Added "bad none", "bad write_ptr", "bad write_int", and "bad readwrite" variants to the ` ioctl! `
96
+ macro. ([ #670 ] ( https://github.com/nix-rust/nix/pull/670 ) )
97
+ - On Linux and Android, added support for receiving ` PTRACE_O_TRACESYSGOOD `
98
+ events from ` wait ` and ` waitpid ` using ` WaitStatus::PtraceSyscall `
99
+ ([ #566 ] ( https://github.com/nix-rust/nix/pull/566 ) ).
27
100
28
101
### Changed
29
- - Changed ` ioctl!(write ...) ` to take argument by value instead as pointer.
30
- If you need a pointer as argument, use ` ioctl!(write buf ...) ` .
31
- ([ #626 ] ( https://github.com/nix-rust/nix/pull/626 ) )
102
+ - The ` ioctl! ` macro and its variants now allow the generated functions to have
103
+ doccomments. ([ #661 ] ( https://github.com/nix-rust/nix/pull/661 ) )
104
+ - Changed ` ioctl!(write ...) ` into ` ioctl!(write_ptr ...) ` and ` ioctl!(write_int ..) ` variants
105
+ to more clearly separate those use cases. ([ #670 ] ( https://github.com/nix-rust/nix/pull/670 ) )
32
106
- Marked ` sys::mman::{ mmap, munmap, madvise, munlock, msync } ` as unsafe.
33
107
([ #559 ] ( https://github.com/nix-rust/nix/pull/559 ) )
34
108
- Minimum supported Rust version is now 1.13.
@@ -46,10 +120,23 @@ This project adheres to [Semantic Versioning](http://semver.org/).
46
120
Also file system type constants like ` nix::sys::statfs::ADFS_SUPER_MAGIC ` were removed in favor of the libc equivalent.
47
121
([ #561 ] ( https://github.com/nix-rust/nix/pull/561 ) )
48
122
- Revised the termios API including additional tests and documentation and exposed it on iOS. ([ #527 ] ( https://github.com/nix-rust/nix/pull/527 ) )
123
+ - ` eventfd ` , ` signalfd ` , and ` pwritev ` /` preadv ` functionality is now included by default for all
124
+ supported platforms. ([ #681 ] ( https://github.com/nix-rust/nix/pull/561 ) )
125
+ - The ` ioctl! ` macro's plain variants has been replaced with "bad read" to be consistent with
126
+ other variants. The generated functions also have more strict types for their arguments. The
127
+ "* _ buf" variants also now calculate total array size and take slice references for improved type
128
+ safety. The documentation has also been dramatically improved.
129
+ ([ #670 ] ( https://github.com/nix-rust/nix/pull/670 ) )
49
130
50
131
### Removed
51
132
- Removed ` io::Error ` from ` nix::Error ` and the conversion from ` nix::Error ` to ` Errno `
52
133
([ #614 ] ( https://github.com/nix-rust/nix/pull/614 ) )
134
+ - All feature flags have been removed in favor of conditional compilation on supported platforms.
135
+ ` execvpe ` is no longer supported, but this was already broken and will be added back in the next
136
+ release. ([ #681 ] ( https://github.com/nix-rust/nix/pull/561 ) )
137
+ - Removed ` ioc_* ` functions and many helper constants and macros within the ` ioctl ` module. These
138
+ should always have been private and only the ` ioctl! ` should be used in public code.
139
+ ([ #670 ] ( https://github.com/nix-rust/nix/pull/670 ) )
53
140
54
141
### Fixed
55
142
- Fixed multiple issues compiling under different archetectures and OSes.
@@ -68,6 +155,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
68
155
([ #623 ] ( https://github.com/nix-rust/nix/pull/623 ) )
69
156
- Multiple constants related to the termios API have now been properly defined for
70
157
all supported platforms. ([ #527 ] ( https://github.com/nix-rust/nix/pull/527 ) )
158
+ - ` ioctl! ` macro now supports working with non-int datatypes and properly supports all platforms.
159
+ ([ #670 ] ( https://github.com/nix-rust/nix/pull/670 ) )
71
160
72
161
## [ 0.8.1] 2017-04-16
73
162
0 commit comments