6
#include <util/psi3/libpsio/psio.h>
12
** PSIO_GET_ADDRESS(): Given a starting page/offset and a shift length
13
** (in bytes), return the page/offset of the next position in the file.
17
psio_address psio_get_address(psio_address start, ULI shift)
22
bytes_left = PSIO_PAGELEN - start.offset; /* Bytes remaining on fpage */
24
if(shift >= bytes_left) { /* Shift to later page */
25
address.page = start.page + (shift - bytes_left)/PSIO_PAGELEN + 1;
26
address.offset = shift - bytes_left -
27
(address.page - start.page - 1)*PSIO_PAGELEN;
29
else { /* Block starts on current page */
30
address.page = start.page;
31
address.offset = start.offset + shift;