Skip to content

Commit

Permalink
Auto merge of #3170 - devnexen:netbsd_map_aligned, r=JohnTitor
Browse files Browse the repository at this point in the history
netbsd add MAP_ALIGNED macro
  • Loading branch information
bors committed Apr 3, 2023
2 parents 2dc31a7 + 4c6ba40 commit b3b41da
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 7 deletions.
1 change: 1 addition & 0 deletions libc-test/semver/netbsd.txt
Expand Up @@ -628,6 +628,7 @@ MADV_NORMAL
MADV_RANDOM
MADV_SEQUENTIAL
MADV_WILLNEED
MAP_ALIGNED
MAP_ALIGNMENT_16MB
MAP_ALIGNMENT_1TB
MAP_ALIGNMENT_256TB
Expand Down
27 changes: 20 additions & 7 deletions src/unix/bsd/netbsdlike/netbsd/mod.rs
Expand Up @@ -1663,13 +1663,13 @@ pub const MAP_WIRED: ::c_int = 0x800;
pub const MAP_STACK: ::c_int = 0x2000;
// map alignment aliases for MAP_ALIGNED
pub const MAP_ALIGNMENT_SHIFT: ::c_int = 24;
pub const MAP_ALIGNMENT_MASK: ::c_int = 0xff << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_64KB: ::c_int = 16 << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_16MB: ::c_int = 24 << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_4GB: ::c_int = 32 << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_1TB: ::c_int = 40 << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_256TB: ::c_int = 48 << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_64PB: ::c_int = 56 << MAP_ALIGNMENT_SHIFT;
pub const MAP_ALIGNMENT_MASK: ::c_int = MAP_ALIGNED(0xff);
pub const MAP_ALIGNMENT_64KB: ::c_int = MAP_ALIGNED(16);
pub const MAP_ALIGNMENT_16MB: ::c_int = MAP_ALIGNED(24);
pub const MAP_ALIGNMENT_4GB: ::c_int = MAP_ALIGNED(32);
pub const MAP_ALIGNMENT_1TB: ::c_int = MAP_ALIGNED(40);
pub const MAP_ALIGNMENT_256TB: ::c_int = MAP_ALIGNED(48);
pub const MAP_ALIGNMENT_64PB: ::c_int = MAP_ALIGNED(56);
// mremap flag
pub const MAP_REMAPDUP: ::c_int = 0x004;

Expand Down Expand Up @@ -2384,6 +2384,19 @@ pub const GRND_NONBLOCK: ::c_uint = 0x1;
pub const GRND_RANDOM: ::c_uint = 0x2;
pub const GRND_INSECURE: ::c_uint = 0x4;

cfg_if! {

if #[cfg(libc_const_extern_fn)] {
pub const fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int {
alignment << MAP_ALIGNMENT_SHIFT
}
} else {
pub fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int {
alignment << MAP_ALIGNMENT_SHIFT
}
}
}

const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
Expand Down

0 comments on commit b3b41da

Please sign in to comment.