summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorneal <neal>2008-06-16 20:49:37 +0000
committerneal <neal>2008-06-16 20:49:37 +0000
commit716dad2b7b13a92542e34d571ed8e525963b9ac1 (patch)
treef9007b3a992496c8f97db10b9ca1bbe020195393 /hurd
parent0ee8179e516db1b98bc5c60adada61f0d7c21d19 (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/ChangeLog5
-rw-r--r--hurd/addr.h15
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