@@ -8,7 +8,7 @@ use crate::Result;
88#[ cfg( feature = "fs" ) ]
99use crate :: { fcntl:: OFlag , sys:: stat:: Mode } ;
1010use libc:: { self , c_int, c_void, off_t, size_t} ;
11- use std:: os:: unix:: io:: RawFd ;
11+ use std:: { os:: unix:: io:: RawFd , num :: NonZeroUsize } ;
1212
1313libc_bitflags ! {
1414 /// Desired memory protection of a memory mapping.
@@ -418,13 +418,13 @@ pub fn munlockall() -> Result<()> {
418418/// [`mmap(2)`]: https://man7.org/linux/man-pages/man2/mmap.2.html
419419pub unsafe fn mmap (
420420 addr : * mut c_void ,
421- length : size_t ,
421+ length : NonZeroUsize ,
422422 prot : ProtFlags ,
423423 flags : MapFlags ,
424424 fd : RawFd ,
425425 offset : off_t ,
426426) -> Result < * mut c_void > {
427- let ret = libc:: mmap ( addr, length, prot. bits ( ) , flags. bits ( ) , fd, offset) ;
427+ let ret = libc:: mmap ( addr, length. into ( ) , prot. bits ( ) , flags. bits ( ) , fd, offset) ;
428428
429429 if ret == libc:: MAP_FAILED {
430430 Err ( Errno :: last ( ) )
@@ -515,8 +515,9 @@ pub unsafe fn madvise(
515515/// # use nix::sys::mman::{mmap, mprotect, MapFlags, ProtFlags};
516516/// # use std::ptr;
517517/// const ONE_K: size_t = 1024;
518+ /// let one_k_non_zero = std::num::NonZeroUsize::new(1024).unwrap();
518519/// let mut slice: &mut [u8] = unsafe {
519- /// let mem = mmap(ptr::null_mut(), ONE_K , ProtFlags::PROT_NONE,
520+ /// let mem = mmap(ptr::null_mut(), one_k_non_zero , ProtFlags::PROT_NONE,
520521/// MapFlags::MAP_ANON | MapFlags::MAP_PRIVATE, -1, 0).unwrap();
521522/// mprotect(mem, ONE_K, ProtFlags::PROT_READ | ProtFlags::PROT_WRITE).unwrap();
522523/// std::slice::from_raw_parts_mut(mem as *mut u8, ONE_K)
0 commit comments