Candidate_v1.6.1
Line | |
---|
1 | /*!
|
---|
2 | \file get_global_address.c
|
---|
3 | \ingroup (PSIO)
|
---|
4 | */
|
---|
5 |
|
---|
6 | #include <util/psi3/libpsio/psio.h>
|
---|
7 |
|
---|
8 | namespace psi3 {
|
---|
9 | namespace libpsio {
|
---|
10 |
|
---|
11 | /*!
|
---|
12 | ** PSIO_GET_GLOBAL_ADDRESS(): Given the global starting address for a
|
---|
13 | ** TOC entry and a relative offset within the entry, compute the global
|
---|
14 | ** address for the offset.
|
---|
15 | **
|
---|
16 | ** \ingroup (PSIO)
|
---|
17 | */
|
---|
18 |
|
---|
19 | psio_address psio_get_global_address(psio_address entry_start,
|
---|
20 | psio_address rel_address)
|
---|
21 | {
|
---|
22 | psio_address address;
|
---|
23 |
|
---|
24 | address.page = entry_start.page + rel_address.page;
|
---|
25 | address.offset = entry_start.offset + rel_address.offset;
|
---|
26 | if((entry_start.offset + rel_address.offset) >= PSIO_PAGELEN) {
|
---|
27 | address.offset -= PSIO_PAGELEN;
|
---|
28 | address.page++;
|
---|
29 | }
|
---|
30 |
|
---|
31 | return(address);
|
---|
32 | }
|
---|
33 |
|
---|
34 | }
|
---|
35 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.