diff options
author | neal <neal> | 2008-06-16 20:49:37 +0000 |
---|---|---|
committer | neal <neal> | 2008-06-16 20:49:37 +0000 |
commit | 716dad2b7b13a92542e34d571ed8e525963b9ac1 (patch) | |
tree | f9007b3a992496c8f97db10b9ca1bbe020195393 /hurd | |
parent | 0ee8179e516db1b98bc5c60adada61f0d7c21d19 (diff) |
2008-06-16 Neal H. Walfield <neal@gnu.org>
* addr.h (addr_add): New function.
(addr_sub): Likewise.
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/ChangeLog | 5 | ||||
-rw-r--r-- | hurd/addr.h | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/hurd/ChangeLog b/hurd/ChangeLog index 5f172a4..5ee75b6 100644 --- a/hurd/ChangeLog +++ b/hurd/ChangeLog @@ -1,3 +1,8 @@ +2008-06-16 Neal H. Walfield <neal@gnu.org> + + * addr.h (addr_add): New function. + (addr_sub): Likewise. + 2008-06-11 Neal H. Walfield <neal@gnu.org> * trace.h: Include <s-printf.h>. diff --git a/hurd/addr.h b/hurd/addr.h index eaa0625..9e382b4 100644 --- a/hurd/addr.h +++ b/hurd/addr.h @@ -157,4 +157,19 @@ addr_extract (addr_t addr, int width) #define PTR_TO_ADDR(ptr_) \ (ADDR ((uintptr_t) (ptr_), ADDR_BITS)) +static inline addr_t +addr_add (addr_t addr, uint64_t count) +{ + int w = ADDR_BITS - addr_depth (addr); + + return ADDR (addr_prefix (addr) + (count << w), + addr_depth (addr)); +} + +static inline addr_t +addr_sub (addr_t addr, uint64_t count) +{ + return addr_add (addr, - count); +} + #endif |