summaryrefslogtreecommitdiff
path: root/libviengoos/viengoos/addr-trans.h
diff options
context:
space:
mode:
Diffstat (limited to 'libviengoos/viengoos/addr-trans.h')
-rw-r--r--libviengoos/viengoos/addr-trans.h98
1 files changed, 49 insertions, 49 deletions
diff --git a/libviengoos/viengoos/addr-trans.h b/libviengoos/viengoos/addr-trans.h
index b48f132..e7ca995 100644
--- a/libviengoos/viengoos/addr-trans.h
+++ b/libviengoos/viengoos/addr-trans.h
@@ -30,11 +30,11 @@
how the page table walker translates bits when passing through this
capability. */
-#define CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS 22
-#define CAP_ADDR_TRANS_SUBPAGES_BITS 4
-#define CAP_ADDR_TRANS_GDEPTH_BITS 6
+#define VG_CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS 22
+#define VG_CAP_ADDR_TRANS_SUBPAGES_BITS 4
+#define VG_CAP_ADDR_TRANS_GDEPTH_BITS 6
-struct cap_addr_trans
+struct vg_cap_addr_trans
{
union
{
@@ -53,61 +53,61 @@ struct cap_addr_trans
only valid offset is 0) and 21 possible guard bits. If
SUBPAGES_LOG2 is 0, there are 256 subpages, 8 subpage bits and a
maximum of 21-8=15 guard bits. */
- uint32_t guard_subpage: CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS;
+ uint32_t guard_subpage: VG_CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS;
/* The log2 of the subpages. The size of a subpage is thus 2^(8 -
SUBPAGES_LOG2). Values of SUBPAGES_LOG2 other than 0 are only
- allowed for cap pages. */
- uint32_t subpages_log2: CAP_ADDR_TRANS_SUBPAGES_BITS;
+ allowed for vg_cap pages. */
+ uint32_t subpages_log2: VG_CAP_ADDR_TRANS_SUBPAGES_BITS;
/* Number of significant guard bits. The value of the GUARD is zero
extended if GDEPTH is greater than the number of available guard
bits. */
- uint32_t gdepth: CAP_ADDR_TRANS_GDEPTH_BITS;
+ uint32_t gdepth: VG_CAP_ADDR_TRANS_GDEPTH_BITS;
};
uint32_t raw;
};
};
-#define CAP_ADDR_TRANS_INIT { { .raw = 0 } }
-#define CAP_ADDR_TRANS_VOID (struct cap_addr_trans) { { .raw = 0 } }
+#define VG_CAP_ADDR_TRANS_INIT { { .raw = 0 } }
+#define VG_CAP_ADDR_TRANS_VOID (struct vg_cap_addr_trans) { { .raw = 0 } }
/* The log2 number of subpages. */
-#define CAP_ADDR_TRANS_SUBPAGES_LOG2(cap_addr_trans_) \
+#define VG_CAP_ADDR_TRANS_SUBPAGES_LOG2(cap_addr_trans_) \
((cap_addr_trans_).subpages_log2)
/* The number of subpages. */
-#define CAP_ADDR_TRANS_SUBPAGES(cap_addr_trans_) \
- (1 << CAP_ADDR_TRANS_SUBPAGES_LOG2((cap_addr_trans_)))
+#define VG_CAP_ADDR_TRANS_SUBPAGES(cap_addr_trans_) \
+ (1 << VG_CAP_ADDR_TRANS_SUBPAGES_LOG2((cap_addr_trans_)))
/* The designated subpage. */
-#define CAP_ADDR_TRANS_SUBPAGE(cap_addr_trans_) \
+#define VG_CAP_ADDR_TRANS_SUBPAGE(cap_addr_trans_) \
((cap_addr_trans_).guard_subpage \
- & (CAP_ADDR_TRANS_SUBPAGES ((cap_addr_trans_)) - 1))
+ & (VG_CAP_ADDR_TRANS_SUBPAGES ((cap_addr_trans_)) - 1))
/* The log2 of the size of the named subpage (in capability
units). */
-#define CAP_ADDR_TRANS_SUBPAGE_SIZE_LOG2(cap_addr_trans_) \
+#define VG_CAP_ADDR_TRANS_SUBPAGE_SIZE_LOG2(cap_addr_trans_) \
(8 - (cap_addr_trans_).subpages_log2)
/* The number of caps addressed by this capability. */
-#define CAP_ADDR_TRANS_SUBPAGE_SIZE(cap_addr_trans_) \
- (1 << CAP_ADDR_TRANS_SUBPAGE_SIZE_LOG2 ((cap_addr_trans_)))
+#define VG_CAP_ADDR_TRANS_SUBPAGE_SIZE(cap_addr_trans_) \
+ (1 << VG_CAP_ADDR_TRANS_SUBPAGE_SIZE_LOG2 ((cap_addr_trans_)))
/* The offset in capability units (with respect to the start of the
capability page) of the first capability in the designated
sub-page. */
-#define CAP_ADDR_TRANS_SUBPAGE_OFFSET(cap_addr_trans_) \
- (CAP_ADDR_TRANS_SUBPAGE ((cap_addr_trans_)) \
- * CAP_ADDR_TRANS_SUBPAGE_SIZE ((cap_addr_trans_)))
+#define VG_CAP_ADDR_TRANS_SUBPAGE_OFFSET(cap_addr_trans_) \
+ (VG_CAP_ADDR_TRANS_SUBPAGE ((cap_addr_trans_)) \
+ * VG_CAP_ADDR_TRANS_SUBPAGE_SIZE ((cap_addr_trans_)))
/* The number of guard bits. */
-#define CAP_ADDR_TRANS_GUARD_BITS(cap_addr_trans_) ((cap_addr_trans_).gdepth)
+#define VG_CAP_ADDR_TRANS_GUARD_BITS(cap_addr_trans_) ((cap_addr_trans_).gdepth)
/* The value of the guard. */
-#define CAP_ADDR_TRANS_GUARD(cap_addr_trans_) \
+#define VG_CAP_ADDR_TRANS_GUARD(cap_addr_trans_) \
((uint64_t) ((cap_addr_trans_).guard_subpage \
>> (cap_addr_trans_).subpages_log2))
-#define CATSGST_(test_, format, args...) \
+#define VG_CATSGST_(test_, format, args...) \
if (! (test_)) \
{ \
r_ = false; \
@@ -116,29 +116,29 @@ struct cap_addr_trans
/* Set CAP_ADDR_TRANS_P_'s guard and the subpage. Returns true on success
(parameters valid), false otherwise. */
-#define CAP_ADDR_TRANS_SET_GUARD_SUBPAGE(cap_addr_trans_p_, guard_, gdepth_, \
+#define VG_CAP_ADDR_TRANS_SET_GUARD_SUBPAGE(cap_addr_trans_p_, guard_, gdepth_, \
subpage_, subpages_) \
({ bool r_ = true; \
/* There must be at least 1 subpage. */ \
- CATSGST_ (((subpages_) > 0), \
+ VG_CATSGST_ (((subpages_) > 0), \
"subpages_ (%d) must be at least 1\n", (subpages_)); \
- CATSGST_ (((subpages_) & ((subpages_) - 1)) == 0, \
+ VG_CATSGST_ (((subpages_) & ((subpages_) - 1)) == 0, \
"SUBPAGES_ (%d) must be a power of 2\n", (subpages_)); \
int subpages_log2_ = vg_msb ((subpages_)) - 1; \
- CATSGST_ (subpages_log2_ <= 8, \
+ VG_CATSGST_ (subpages_log2_ <= 8, \
"maximum subpages is 256 (%d)\n", (subpages_)); \
- CATSGST_ (0 <= (subpage_) && (subpage_) < (subpages_), \
+ VG_CATSGST_ (0 <= (subpage_) && (subpage_) < (subpages_), \
"subpage (%d) must be between 0 and SUBPAGES_ (%d) - 1\n", \
(subpage_), (subpages_)); \
\
/* The number of required guard bits. */ \
int gbits_ = vg_msb64 ((guard_)); \
- CATSGST_ (gbits_ <= (gdepth_), \
+ VG_CATSGST_ (gbits_ <= (gdepth_), \
"Significant guard bits (%d) must be less than depth (%d)\n", \
gbits_, (gdepth_)); \
- CATSGST_ (gbits_ + subpages_log2_ <= CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS, \
+ VG_CATSGST_ (gbits_ + subpages_log2_ <= VG_CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS, \
"Significant guard bits (%d) plus subpage bits (%d) > %d\n", \
- gbits_, subpages_log2_, CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS); \
+ gbits_, subpages_log2_, VG_CAP_ADDR_TRANS_GUARD_SUBPAGE_BITS); \
\
if (r_) \
{ \
@@ -152,38 +152,38 @@ struct cap_addr_trans
/* Set *CAP_ADDR_TRANS_P_'s guard. Returns true on success (parameters
valid), false otherwise. */
-#define CAP_ADDR_TRANS_SET_GUARD(cap_addr_trans_p_, guard_, gdepth_) \
- ({ int subpage_ = CAP_ADDR_TRANS_SUBPAGE (*(cap_addr_trans_p_)); \
- int subpages_ = CAP_ADDR_TRANS_SUBPAGES (*(cap_addr_trans_p_)); \
- CAP_ADDR_TRANS_SET_GUARD_SUBPAGE ((cap_addr_trans_p_), \
+#define VG_CAP_ADDR_TRANS_SET_GUARD(cap_addr_trans_p_, guard_, gdepth_) \
+ ({ int subpage_ = VG_CAP_ADDR_TRANS_SUBPAGE (*(cap_addr_trans_p_)); \
+ int subpages_ = VG_CAP_ADDR_TRANS_SUBPAGES (*(cap_addr_trans_p_)); \
+ VG_CAP_ADDR_TRANS_SET_GUARD_SUBPAGE ((cap_addr_trans_p_), \
(guard_), (gdepth_), \
(subpage_), (subpages_)); \
})
/* Set *CAP_ADDR_TRANS_P_'s subpage. Returns true on success (parameters
valid), false otherwise. */
-#define CAP_ADDR_TRANS_SET_SUBPAGE(cap_addr_trans_p_, subpage_, subpages_) \
- ({ int gdepth_ = CAP_ADDR_TRANS_GUARD_BITS (*(cap_addr_trans_p_)); \
- int guard_ = CAP_ADDR_TRANS_GUARD (*(cap_addr_trans_p_)); \
- CAP_ADDR_TRANS_SET_GUARD_SUBPAGE ((cap_addr_trans_p_), \
+#define VG_CAP_ADDR_TRANS_SET_SUBPAGE(cap_addr_trans_p_, subpage_, subpages_) \
+ ({ int gdepth_ = VG_CAP_ADDR_TRANS_GUARD_BITS (*(cap_addr_trans_p_)); \
+ int guard_ = VG_CAP_ADDR_TRANS_GUARD (*(cap_addr_trans_p_)); \
+ VG_CAP_ADDR_TRANS_SET_GUARD_SUBPAGE ((cap_addr_trans_p_), \
(guard_), (gdepth_), \
(subpage_), (subpages_)); \
})
/* Returns whether the capability address CAP_ADDR_TRANS is well-formed. */
-#define CAP_ADDR_TRANS_VALID(cap_addr_trans) \
+#define VG_CAP_ADDR_TRANS_VALID(vg_cap_addr_trans) \
({ bool r_ = true; \
- CATSGST_ (CAP_ADDR_TRANS_GUARD_BITS (cap_addr_trans) <= WORDSIZE, \
+ VG_CATSGST_ (VG_CAP_ADDR_TRANS_GUARD_BITS (vg_cap_addr_trans) <= WORDSIZE, \
"Invalid guard depth (%d)", \
- CAP_ADDR_TRANS_GUARD_BITS (cap_addr_trans)); \
- CATSGST_ (CAP_ADDR_TRANS_SUBPAGES_LOG2 (cap_addr_trans) <= 8, \
+ VG_CAP_ADDR_TRANS_GUARD_BITS (vg_cap_addr_trans)); \
+ VG_CATSGST_ (VG_CAP_ADDR_TRANS_SUBPAGES_LOG2 (vg_cap_addr_trans) <= 8, \
"Invalid number of subpages (%d)", \
- CAP_ADDR_TRANS_SUBPAGES (cap_addr_trans)); \
- CATSGST_ (vg_msb (CAP_ADDR_TRANS_GUARD (cap_addr_trans)) \
- <= CAP_ADDR_TRANS_GUARD_BITS (cap_addr_trans), \
+ VG_CAP_ADDR_TRANS_SUBPAGES (vg_cap_addr_trans)); \
+ VG_CATSGST_ (vg_msb (VG_CAP_ADDR_TRANS_GUARD (vg_cap_addr_trans)) \
+ <= VG_CAP_ADDR_TRANS_GUARD_BITS (vg_cap_addr_trans), \
"Significant guard bits (%d) exceeds guard depth (%d)", \
- vg_msb (CAP_ADDR_TRANS_GUARD (cap_addr_trans)), \
- CAP_ADDR_TRANS_GUARD_BITS (cap_addr_trans)); \
+ vg_msb (VG_CAP_ADDR_TRANS_GUARD (vg_cap_addr_trans)), \
+ VG_CAP_ADDR_TRANS_GUARD_BITS (vg_cap_addr_trans)); \
r_; \
})