authorgravatar for samuel.tebbs@gmail.comSamTebbs33 <samuel.tebbs@gmail.com> 2019-06-27 22:22:17+01:00
committergravatar for samuel.tebbs@gmail.comSamTebbs33 <samuel.tebbs@gmail.com> 2019-06-27 22:22:17+01:00
log14abf0fda5080b52ddfc0976d0e7c93928dbe543
tree02a9bab43ac43759ba8563e6f5cec6cb33676c73
parentd422d5753b64b57b8559ceee45081f4e1e355e54

Add doc comments to alignment functions


1 files changed, 5 insertions(+), 0 deletions(-)

std/mem.zig+5
...@@ -1481,6 +1481,7 @@ test "subArrayPtr" {...@@ -1481,6 +1481,7 @@ test "subArrayPtr" {
1481}1481}
14821482
1483/// Round an address up to the nearest aligned address1483/// Round an address up to the nearest aligned address
1484/// The alignment must be greater than 0.
1484pub fn alignForward(addr: usize, alignment: usize) usize {1485pub fn alignForward(addr: usize, alignment: usize) usize {
1485 return alignBackward(addr + (alignment - 1), alignment);1486 return alignBackward(addr + (alignment - 1), alignment);
1486}1487}
...@@ -1500,6 +1501,8 @@ test "alignForward" {...@@ -1500,6 +1501,8 @@ test "alignForward" {
1500 testing.expect(alignForward(17, 8) == 24);1501 testing.expect(alignForward(17, 8) == 24);
1501}1502}
15021503
1504/// Round an address up to the previous aligned address
1505/// The alignment must be greater than 0.
1503pub fn alignBackward(addr: usize, alignment: usize) usize {1506pub fn alignBackward(addr: usize, alignment: usize) usize {
1504 // 000010000 // example addr1507 // 000010000 // example addr
1505 // 000001111 // subtract 11508 // 000001111 // subtract 1
...@@ -1507,6 +1510,8 @@ pub fn alignBackward(addr: usize, alignment: usize) usize {...@@ -1507,6 +1510,8 @@ pub fn alignBackward(addr: usize, alignment: usize) usize {
1507 return addr & ~(alignment - 1);1510 return addr & ~(alignment - 1);
1508}1511}
15091512
1513/// Given an address and an alignment, return true if the address is a multiple of the alignment
1514/// The alignment must be greater than 0.
1510pub fn isAligned(addr: usize, alignment: usize) bool {1515pub fn isAligned(addr: usize, alignment: usize) bool {
1511 return alignBackward(addr, alignment) == addr;1516 return alignBackward(addr, alignment) == addr;
1512}1517}