summaryrefslogtreecommitdiff
path: root/libviengoos
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2008-12-18 10:48:24 +0100
committerNeal H. Walfield <neal@gnu.org>2008-12-18 10:48:24 +0100
commit61ce081e93aaf465a31beb41dd4094575cfbb19f (patch)
tree5570a5239f5adb8f5bd852f902fe3d4ca481d41c /libviengoos
parent87bfe7ed7bbe4dd4350f420cc9649809bef6d5a4 (diff)
Add vg_ prefix to the (hopefully) remaining viengoos symbols.
2008-12-18 Neal H. Walfield <neal@gnu.org> * viengoos/activity.h (struct activity_memory_policy): Rename from this... (struct vg_activity_memory_policy): ... to this. Update users. (struct activity_policy): Rename from this... (struct vg_activity_policy): ... to this. Update users. (ACTIVITY_STATS_PERIODS): Rename from this... (VG_ACTIVITY_STATS_PERIODS): ... to this. Update users. (struct activity_stats): Rename from this... (struct vg_activity_stats): ... to this. Update users. (struct activity_info): Rename from this... (struct vg_activity_info): ... to this. Update users. * viengoos/addr.h (struct addr): Rename from this... (struct vg_addr): ... to this. Update users. * viengoos/cap.h (struct object_policy): Rename from this... (struct vg_object_policy): ... to this. Update users. (struct object_name): Rename from this... (struct vg_object_name): ... to this. Update users. (struct object): Rename from this... (struct vg_object): ... to this. Update users. * viengoos/folio.h (struct folio_policy): Rename from this... (struct vg_folio_policy): ... to this. Update users. (struct folio): Rename for this... (struct vg_folio): ... to this. Update users. * viengoos/thread.h (HURD_EXREGS_SET_UTCB): Rename from this... (VG_EXREGS_SET_UTCB): ... to this. Update users. (HURD_EXREGS_SET_EXCEPTION_MESSENGER): Rename from this... (VG_EXREGS_SET_EXCEPTION_MESSENGER): ... to this. Update users. (HURD_EXREGS_SET_ASPACE): Rename from this... (VG_EXREGS_SET_ASPACE): ... to this. Update users. (HURD_EXREGS_SET_ACTIVITY): Rename from this... (VG_EXREGS_SET_ACTIVITY): ... to this. Update users. (HURD_EXREGS_SET_SP): Rename from this... (VG_EXREGS_SET_SP): ... to this. Update users. (HURD_EXREGS_SET_IP): Rename from this... (VG_EXREGS_SET_IP): ... to this. Update users. (HURD_EXREGS_SET_SP_IP): Rename from this... (VG_EXREGS_SET_SP_IP): ... to this. Update users. (HURD_EXREGS_SET_EFLAGS): Rename from this... (VG_EXREGS_SET_EFLAGS): ... to this. Update users. (HURD_EXREGS_SET_USER_HANDLE): Rename from this... (VG_EXREGS_SET_USER_HANDLE): ... to this. Update users. (HURD_EXREGS_SET_REGS): Rename from this... (VG_EXREGS_SET_REGS): ... to this. Update users. (HURD_EXREGS_GET_REGS): Rename from this... (VG_EXREGS_GET_REGS): ... to this. Update users. (HURD_EXREGS_START): Rename from this... (VG_EXREGS_START): ... to this. Update users. (HURD_EXREGS_STOP): Rename from this... (VG_EXREGS_STOP): ... to this. Update users. (HURD_EXREGS_ABORT_SEND): Rename from this... (VG_EXREGS_ABORT_SEND): ... to this. Update users. (HURD_EXREGS_ABORT_RECEIVE): Rename from this... (VG_EXREGS_ABORT_RECEIVE): ... to this. Update users. (HURD_EXREGS_ABORT_IPC): Rename from this... (VG_EXREGS_ABORT_IPC): ... to this. Update users. (struct hurd_thread_exregs_in): Rename form this... (struct vg_thread_exregs_in): ... to this. Update users. (struct hurd_thread_exregs_out): Rename form this... (struct vg_thread_exregs_out): ... to this. Update users. (RPC_STUB_PREFIX): Define to vg_activation. Update users. (RPC_ID_PREFIX): Define to VG_ACTIVATION. Update users. (ACTIVATION_fault): Rename from this... (VG_ACTIVATION_fault): ... to this. Update users.
Diffstat (limited to 'libviengoos')
-rw-r--r--libviengoos/ChangeLog67
-rw-r--r--libviengoos/viengoos/activity.h34
-rw-r--r--libviengoos/viengoos/addr.h35
-rw-r--r--libviengoos/viengoos/cap.h47
-rw-r--r--libviengoos/viengoos/folio.h66
-rw-r--r--libviengoos/viengoos/thread.h107
6 files changed, 216 insertions, 140 deletions
diff --git a/libviengoos/ChangeLog b/libviengoos/ChangeLog
index c6a0f00..a55f0d0 100644
--- a/libviengoos/ChangeLog
+++ b/libviengoos/ChangeLog
@@ -1,3 +1,70 @@
+2008-12-18 Neal H. Walfield <neal@gnu.org>
+
+ * viengoos/activity.h (struct activity_memory_policy): Rename from
+ this...
+ (struct vg_activity_memory_policy): ... to this. Update users.
+ (struct activity_policy): Rename from this...
+ (struct vg_activity_policy): ... to this. Update users.
+ (ACTIVITY_STATS_PERIODS): Rename from this...
+ (VG_ACTIVITY_STATS_PERIODS): ... to this. Update users.
+ (struct activity_stats): Rename from this...
+ (struct vg_activity_stats): ... to this. Update users.
+ (struct activity_info): Rename from this...
+ (struct vg_activity_info): ... to this. Update users.
+ * viengoos/addr.h (struct addr): Rename from this...
+ (struct vg_addr): ... to this. Update users.
+ * viengoos/cap.h (struct object_policy): Rename from this...
+ (struct vg_object_policy): ... to this. Update users.
+ (struct object_name): Rename from this...
+ (struct vg_object_name): ... to this. Update users.
+ (struct object): Rename from this...
+ (struct vg_object): ... to this. Update users.
+ * viengoos/folio.h (struct folio_policy): Rename from this...
+ (struct vg_folio_policy): ... to this. Update users.
+ (struct folio): Rename for this...
+ (struct vg_folio): ... to this. Update users.
+ * viengoos/thread.h
+ (HURD_EXREGS_SET_UTCB): Rename from this...
+ (VG_EXREGS_SET_UTCB): ... to this. Update users.
+ (HURD_EXREGS_SET_EXCEPTION_MESSENGER): Rename from this...
+ (VG_EXREGS_SET_EXCEPTION_MESSENGER): ... to this. Update users.
+ (HURD_EXREGS_SET_ASPACE): Rename from this...
+ (VG_EXREGS_SET_ASPACE): ... to this. Update users.
+ (HURD_EXREGS_SET_ACTIVITY): Rename from this...
+ (VG_EXREGS_SET_ACTIVITY): ... to this. Update users.
+ (HURD_EXREGS_SET_SP): Rename from this...
+ (VG_EXREGS_SET_SP): ... to this. Update users.
+ (HURD_EXREGS_SET_IP): Rename from this...
+ (VG_EXREGS_SET_IP): ... to this. Update users.
+ (HURD_EXREGS_SET_SP_IP): Rename from this...
+ (VG_EXREGS_SET_SP_IP): ... to this. Update users.
+ (HURD_EXREGS_SET_EFLAGS): Rename from this...
+ (VG_EXREGS_SET_EFLAGS): ... to this. Update users.
+ (HURD_EXREGS_SET_USER_HANDLE): Rename from this...
+ (VG_EXREGS_SET_USER_HANDLE): ... to this. Update users.
+ (HURD_EXREGS_SET_REGS): Rename from this...
+ (VG_EXREGS_SET_REGS): ... to this. Update users.
+ (HURD_EXREGS_GET_REGS): Rename from this...
+ (VG_EXREGS_GET_REGS): ... to this. Update users.
+ (HURD_EXREGS_START): Rename from this...
+ (VG_EXREGS_START): ... to this. Update users.
+ (HURD_EXREGS_STOP): Rename from this...
+ (VG_EXREGS_STOP): ... to this. Update users.
+ (HURD_EXREGS_ABORT_SEND): Rename from this...
+ (VG_EXREGS_ABORT_SEND): ... to this. Update users.
+ (HURD_EXREGS_ABORT_RECEIVE): Rename from this...
+ (VG_EXREGS_ABORT_RECEIVE): ... to this. Update users.
+ (HURD_EXREGS_ABORT_IPC): Rename from this...
+ (VG_EXREGS_ABORT_IPC): ... to this. Update users.
+ (struct hurd_thread_exregs_in): Rename form this...
+ (struct vg_thread_exregs_in): ... to this. Update users.
+ (struct hurd_thread_exregs_out): Rename form this...
+ (struct vg_thread_exregs_out): ... to this. Update users.
+ (RPC_STUB_PREFIX): Define to vg_activation. Update users.
+ (RPC_ID_PREFIX): Define to VG_ACTIVATION. Update users.
+ (ACTIVATION_fault): Rename from this...
+ (VG_ACTIVATION_fault): ... to this. Update users.
+
2008-12-17 Neal H. Walfield <neal@gnu.org>
* viengoos/futex.h (vg_futex_using): Rename from this...
diff --git a/libviengoos/viengoos/activity.h b/libviengoos/viengoos/activity.h
index bc10f7d..d4c9fcb 100644
--- a/libviengoos/viengoos/activity.h
+++ b/libviengoos/viengoos/activity.h
@@ -29,23 +29,23 @@ enum
VG_activity_info,
};
-struct activity_memory_policy
+struct vg_activity_memory_policy
{
uint16_t priority;
uint16_t weight;
};
#define VG_ACTIVITY_MEMORY_POLICY(__amp_priority, __amp_weight) \
- (struct activity_memory_policy) { __amp_priority, __amp_weight }
+ (struct vg_activity_memory_policy) { __amp_priority, __amp_weight }
#define VG_ACTIVITY_MEMORY_POLICY_VOID VG_ACTIVITY_MEMORY_POLICY(0, 0)
-struct activity_policy
+struct vg_activity_policy
{
/* This policy is typically set by the parent to reflect how
available memory should be distributed among its immediate
children. It may only be set via an activity control
capability. */
- struct activity_memory_policy sibling_rel;
+ struct vg_activity_memory_policy sibling_rel;
/* This policy is typically set by the activity user and controls
how the memory allocated *directly* to this activity is managed
@@ -54,7 +54,7 @@ struct activity_policy
provides a policy to determine whether the memory allocated
directly to the activity or that to a child activity should be
evicted. */
- struct activity_memory_policy child_rel;
+ struct vg_activity_memory_policy child_rel;
/* Number of folios. Zero means no limit. (This does not mean that
there is no limit, just that this activity does not impose a
@@ -65,8 +65,8 @@ struct activity_policy
/* Activity statistics. These are approximate and in some cases
represent averages. */
-#define ACTIVITY_STATS_PERIODS 2
-struct activity_stats
+#define VG_ACTIVITY_STATS_PERIODS 2
+struct vg_activity_stats
{
/* The period during which this statistic was generated. */
uint32_t period;
@@ -159,7 +159,7 @@ struct activity_stats
};
#define VG_ACTIVITY_POLICY(__ap_sibling_rel, __ap_child_rel, __ap_storage) \
- (struct activity_policy) { __ap_sibling_rel, __ap_child_rel, __ap_storage }
+ (struct vg_activity_policy) { __ap_sibling_rel, __ap_child_rel, __ap_storage }
#define VG_ACTIVITY_POLICY_VOID \
VG_ACTIVITY_POLICY(VG_ACTIVITY_MEMORY_POLICY_VOID, \
VG_ACTIVITY_MEMORY_POLICY_VOID, \
@@ -188,32 +188,32 @@ enum
/* Get ACTIVITY's policy and set according to FLAGS and IN. */
RPC (activity_policy, 2, 1, 0,
/* cap_t principal, cap_t activity */
- uintptr_t, flags, struct activity_policy, in,
+ uintptr_t, flags, struct vg_activity_policy, in,
/* Out: */
- struct activity_policy, out);
+ struct vg_activity_policy, out);
enum
{
/* Return statistics. */
- activity_info_stats = 1 << 0,
+ vg_activity_info_stats = 1 << 0,
/* Asynchronous change in availability. */
- activity_info_pressure = 1 << 1,
+ vg_activity_info_pressure = 1 << 1,
};
-struct activity_info
+struct vg_activity_info
{
/* The returned event. */
uintptr_t event;
union
{
- /* If EVENT is activity_info_stats. */
+ /* If EVENT is vg_activity_info_stats. */
struct
{
/* The number of samples. */
int count;
/* Samples are ordered by recency with the youngest towards the
start of the buffer. */
- struct activity_stats stats[ACTIVITY_STATS_PERIODS];
+ struct vg_activity_stats stats[VG_ACTIVITY_STATS_PERIODS];
} stats;
/* If EVENT is activity_info_free. */
@@ -230,7 +230,7 @@ struct activity_info
bit-wise or of events the caller is interested. Only one event
will be returned.
- If FLAGS contains activity_info_stats, may return the next
+ If FLAGS contains vg_activity_info_stats, may return the next
statistic that comes at or after UNTIL_PERIOD. (This can be used
to register a callback that is sent when the statistics are next
available. For example, call with UNTIL_PERIOD equal to 0 to get
@@ -245,7 +245,7 @@ RPC (activity_info, 2, 1, 0,
/* cap_t principal, cap_t activity, */
uintptr_t, flags, uintptr_t, until_period,
/* Out: */
- struct activity_info, info)
+ struct vg_activity_info, info)
#undef RPC_STUB_PREFIX
#undef RPC_ID_PREFIX
diff --git a/libviengoos/viengoos/addr.h b/libviengoos/viengoos/addr.h
index d3c9009..5d6d143 100644
--- a/libviengoos/viengoos/addr.h
+++ b/libviengoos/viengoos/addr.h
@@ -45,13 +45,13 @@
Leaves thus have a 1 in the least significant bit and nodes a
0. */
-struct addr
+struct vg_addr
{
uint64_t raw;
};
#define VG_ADDR_BITS 63
/* Client-side capability handle. */
-typedef struct addr vg_addr_t;
+typedef struct vg_addr vg_addr_t;
#define VG_ADDR_FMT "%llx/%d"
#define VG_ADDR_PRINTF(addr_) vg_addr_prefix ((addr_)), vg_addr_depth ((addr_))
@@ -64,7 +64,7 @@ typedef struct addr vg_addr_t;
assert (0 <= d_ && d_ <= VG_ADDR_BITS); \
assert ((p_ & ((1 << (VG_ADDR_BITS - d_)) - 1)) == 0); \
assert (p_ < (1ULL << VG_ADDR_BITS)); \
- (struct addr) { (p_ << 1ULL) | (1ULL << (VG_ADDR_BITS - d_)) }; \
+ (struct vg_addr) { (p_ << 1ULL) | (1ULL << (VG_ADDR_BITS - d_)) }; \
})
/* Create an address given a prefix and a depth. Appropriate for use
@@ -72,7 +72,7 @@ typedef struct addr vg_addr_t;
#define VG_ADDR_INIT(prefix_, depth_) \
{ .raw = ((((prefix_) << 1) | 1) << (VG_ADDR_BITS - (depth_))) }
-#define VG_ADDR_VOID ((struct addr) { 0ULL })
+#define VG_ADDR_VOID ((struct vg_addr) { 0ULL })
#define VG_ADDR_EQ(a, b) (a.raw == b.raw)
#define VG_ADDR_IS_VOID(a) (VG_ADDR_EQ (a, VG_ADDR_VOID))
@@ -110,16 +110,16 @@ vg_addr_extend (vg_addr_t addr, uint64_t prefix, int depth)
#define vg_addr_extend(addr_, prefix_, depth_) \
({ \
vg_addr_t a__ = (addr_); \
- uint64_t p__ = (prefix_); \
+ uint64_t p__ = (prefix_); \
int d__ = (depth_); \
assertx (d__ >= 0, "depth: %d", d__); \
- assertx (vg_addr_depth ((a__)) + (d__) <= VG_ADDR_BITS, \
- "addr: " VG_ADDR_FMT "; depth: %d", VG_ADDR_PRINTF (a__), d__); \
+ assertx (vg_addr_depth ((a__)) + (d__) <= VG_ADDR_BITS, \
+ "addr: " VG_ADDR_FMT "; depth: %d", VG_ADDR_PRINTF (a__), d__); \
assertx (p__ < (1ULL << d__), \
"prefix: %llx; depth: %lld", p__, 1ULL << d__); \
- VG_ADDR (vg_addr_prefix ((a__)) \
- | ((p__) << (VG_ADDR_BITS - vg_addr_depth ((a__)) - (d__))), \
- vg_addr_depth ((a__)) + (d__)); \
+ VG_ADDR (vg_addr_prefix ((a__)) \
+ | ((p__) << (VG_ADDR_BITS - vg_addr_depth ((a__)) - (d__))), \
+ vg_addr_depth ((a__)) + (d__)); \
})
#endif
@@ -130,7 +130,8 @@ vg_addr_chop (vg_addr_t addr, int depth)
int d = vg_addr_depth (addr) - depth;
assert (d >= 0);
- return VG_ADDR (vg_addr_prefix (addr) & ~((1ULL << (VG_ADDR_BITS - d)) - 1), d);
+ return VG_ADDR (vg_addr_prefix (addr) & ~((1ULL << (VG_ADDR_BITS - d)) - 1),
+ d);
}
/* Return the last WIDTH bits of address's VG_ADDR prefix. */
@@ -146,19 +147,19 @@ vg_addr_extract (vg_addr_t addr, int width)
/* Convert an address to a pointer. The address must name an object
mapped in the machine data instruction accessible part of the
address space. */
-#define VG_ADDR_TO_PTR(addr_) \
- ({ \
+#define VG_ADDR_TO_PTR(addr_) \
+ ({ \
assert (vg_addr_prefix ((addr_)) < ((uintptr_t) -1)); \
- assert (vg_addr_depth ((addr_)) == VG_ADDR_BITS); \
- (void *) (uintptr_t) vg_addr_prefix ((addr_)); \
+ assert (vg_addr_depth ((addr_)) == VG_ADDR_BITS); \
+ (void *) (uintptr_t) vg_addr_prefix ((addr_)); \
})
/* Convert a pointer to an address. */
-#define VG_PTR_TO_ADDR(ptr_) \
+#define VG_PTR_TO_ADDR(ptr_) \
(VG_ADDR ((uintptr_t) (ptr_), VG_ADDR_BITS))
/* Return the address of the page that would contain pointer PTR_. */
-#define VG_PTR_TO_PAGE(ptr_) \
+#define VG_PTR_TO_PAGE(ptr_) \
vg_addr_chop (VG_ADDR ((uintptr_t) (ptr_), VG_ADDR_BITS), PAGESIZE_LOG2)
static inline vg_addr_t
diff --git a/libviengoos/viengoos/cap.h b/libviengoos/viengoos/cap.h
index 551a054..b456d34 100644
--- a/libviengoos/viengoos/cap.h
+++ b/libviengoos/viengoos/cap.h
@@ -201,7 +201,7 @@ vg_cap_type_strengthen (enum vg_cap_type type)
#define VG_OBJECT_PRIORITY_DEFAULT (0)
#define VG_OBJECT_PRIORITY_MAX ((1 << (VG_OBJECT_PRIORITY_BITS - 1)) - 1)
-struct object_policy
+struct vg_object_policy
{
union
{
@@ -224,7 +224,7 @@ struct object_policy
#define VG_OBJECT_POLICY_INIT { { raw: 0 } }
#define VG_OBJECT_POLICY(__op_discardable, __op_priority) \
- (struct object_policy) { { { (__op_discardable), (__op_priority) } } }
+ (struct vg_object_policy) { { { (__op_discardable), (__op_priority) } } }
/* The default object policy: not discardable, managed by LRU. */
#define VG_OBJECT_POLICY_VOID \
VG_OBJECT_POLICY (false, VG_OBJECT_PRIORITY_DEFAULT)
@@ -235,7 +235,7 @@ struct object_policy
struct vg_cap_properties
{
- struct object_policy policy;
+ struct vg_object_policy policy;
struct vg_cap_addr_trans addr_trans;
};
@@ -282,7 +282,7 @@ struct vg_cap
uint64_t oid : 64 - VG_CAP_TYPE_BITS;
#else
/* The shadow object (only for cappages and folios). */
- struct object *shadow;
+ struct vg_object *shadow;
uint32_t discardable : 1;
int32_t priority : VG_OBJECT_PRIORITY_BITS;
@@ -470,8 +470,8 @@ RPC(object_discard, 0, 0, 0
enum
{
- object_dirty = 1 << 0,
- object_referenced = 1 << 1,
+ vg_object_dirty = 1 << 0,
+ vg_object_referenced = 1 << 1,
};
/* Returns whether OBJECT is dirty. If CLEAR is set, the dirty bit is
@@ -490,7 +490,7 @@ RPC (object_reply_on_destruction, 0, 1, 0,
/* Out: */
uintptr_t, return_code);
-struct object_name
+struct vg_object_name
{
char name[12];
};
@@ -499,7 +499,7 @@ struct object_name
purposes and is only supported by some objects, in particular,
activities and threads. */
RPC (object_name, 1, 0, 0,
- /* cap_t activity, cap_t object, */ struct object_name, name);
+ /* cap_t activity, cap_t object, */ struct vg_object_name, name);
#undef RPC_STUB_PREFIX
@@ -518,7 +518,7 @@ enum
VG_CAPPAGE_SLOTS_LOG2 = PAGESIZE_LOG2 - 4,
};
-struct object
+struct vg_object
{
union
{
@@ -528,9 +528,9 @@ struct object
};
#ifdef RM_INTERN
-typedef struct activity *activity_t;
+typedef struct activity *vg_activity_t;
#else
-typedef vg_addr_t activity_t;
+typedef vg_addr_t vg_activity_t;
#endif
#ifndef RM_INTERN
@@ -552,10 +552,10 @@ vg_cap_set_shadow (struct vg_cap *vg_cap, void *shadow)
/* Given vg_cap CAP, return the corresponding object, or NULL, if there
is none. */
#ifdef RM_INTERN
-extern struct object *vg_cap_to_object (activity_t activity, struct vg_cap *vg_cap);
+extern struct vg_object *vg_cap_to_object (vg_activity_t activity, struct vg_cap *vg_cap);
#else
-static inline struct object *
-vg_cap_to_object (activity_t activity, struct vg_cap *vg_cap)
+static inline struct vg_object *
+vg_cap_to_object (vg_activity_t activity, struct vg_cap *vg_cap)
{
return vg_cap_get_shadow (vg_cap);
}
@@ -564,9 +564,11 @@ vg_cap_to_object (activity_t activity, struct vg_cap *vg_cap)
/* Wrapper for the vg_cap_copy method. Also updates shadow
capabilities. */
static inline bool
-vg_cap_copy_x (activity_t activity,
- vg_addr_t target_address_space, struct vg_cap *target, vg_addr_t target_addr,
- vg_addr_t source_address_space, struct vg_cap source, vg_addr_t source_addr,
+vg_cap_copy_x (vg_activity_t activity,
+ vg_addr_t target_address_space,
+ struct vg_cap *target, vg_addr_t target_addr,
+ vg_addr_t source_address_space,
+ struct vg_cap source, vg_addr_t source_addr,
int flags, struct vg_cap_properties properties)
{
/* By default, we preserve SOURCE's subpage specification. */
@@ -652,10 +654,12 @@ vg_cap_copy_x (activity_t activity,
changes_translation = true;
}
- if (subpage != VG_CAP_SUBPAGE (target) || subpages != VG_CAP_SUBPAGES (target))
+ if (subpage != VG_CAP_SUBPAGE (target)
+ || subpages != VG_CAP_SUBPAGES (target))
{
debug (5, "Subpage specification differs %d/%d -> %d/%d.",
- subpage, subpages, VG_CAP_SUBPAGE (target), VG_CAP_SUBPAGES (target));
+ subpage, subpages,
+ VG_CAP_SUBPAGE (target), VG_CAP_SUBPAGES (target));
changes_translation = true;
}
@@ -676,7 +680,8 @@ vg_cap_copy_x (activity_t activity,
if (changes_translation)
{
- extern void cap_shootdown (struct activity *activity, struct vg_cap *vg_cap);
+ extern void cap_shootdown (struct activity *activity,
+ struct vg_cap *cap);
debug (5, "Translation changed: " VG_CAP_FMT " -> " VG_CAP_FMT,
VG_CAP_PRINTF (target), VG_CAP_PRINTF (&source));
@@ -717,7 +722,7 @@ vg_cap_copy_x (activity_t activity,
SOURCE's subpage specification and TARGET's guard. Copies SOURCE's
policy. */
static inline bool
-vg_cap_copy_simple (activity_t activity,
+vg_cap_copy_simple (vg_activity_t activity,
vg_addr_t target_as,
struct vg_cap *target, vg_addr_t target_addr,
vg_addr_t source_as,
diff --git a/libviengoos/viengoos/folio.h b/libviengoos/viengoos/folio.h
index 728fe7f..bf82b59 100644
--- a/libviengoos/viengoos/folio.h
+++ b/libviengoos/viengoos/folio.h
@@ -51,7 +51,7 @@ enum
#define VG_FOLIO_GROUP_MIN 0
#define VG_FOLIO_GROUP_MAX ((1 << FOLIO_BITS) - 1)
-struct folio_policy
+struct vg_folio_policy
{
union
{
@@ -82,13 +82,13 @@ struct folio_policy
};
#define VG_FOLIO_POLICY_INIT { { raw: 0 } }
-#define VG_FOLIO_POLICY_VOID (struct folio_policy) VG_FOLIO_POLICY_INIT
+#define VG_FOLIO_POLICY_VOID (struct vg_folio_policy) VG_FOLIO_POLICY_INIT
/* The default policy is not discardable. */
#define VG_FOLIO_POLICY_DEFAULT VG_FOLIO_POLICY_VOID
/* The format of the first page of a folio. This page is followed (on
disk) by VG_FOLIO_OBJECTS pages. */
-struct folio
+struct vg_folio
{
#ifdef RM_INTERN
/* Folios are the unit of storage accounting. Every folio belongs
@@ -100,7 +100,7 @@ struct folio
struct vg_cap prev;
/* The storage policy. */
- struct folio_policy policy;
+ struct vg_folio_policy policy;
struct
{
@@ -146,14 +146,14 @@ struct folio
};
#ifdef RM_INTERN
-typedef struct folio *vg_folio_t;
+typedef struct vg_folio *vg_folio_t;
#else
typedef vg_addr_t vg_folio_t;
#endif
/* OBJECT is from -1 to VG_FOLIO_OBJECTS. */
static inline enum vg_cap_type
-vg_folio_object_type (struct folio *folio, int object)
+vg_folio_object_type (struct vg_folio *folio, int object)
{
#ifdef RM_INTERN
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -168,7 +168,7 @@ vg_folio_object_type (struct folio *folio, int object)
}
static inline void
-vg_folio_object_type_set (struct folio *folio, int object,
+vg_folio_object_type_set (struct vg_folio *folio, int object,
enum vg_cap_type type)
{
assert (object >= 0 && object < VG_FOLIO_OBJECTS);
@@ -180,10 +180,10 @@ vg_folio_object_type_set (struct folio *folio, int object,
#endif
}
-static inline struct object_policy
-vg_folio_object_policy (struct folio *folio, int object)
+static inline struct vg_object_policy
+vg_folio_object_policy (struct vg_folio *folio, int object)
{
- struct object_policy policy;
+ struct vg_object_policy policy;
#ifdef RM_INTERN
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -201,8 +201,8 @@ vg_folio_object_policy (struct folio *folio, int object)
}
static inline void
-vg_folio_object_policy_set (struct folio *folio, int object,
- struct object_policy policy)
+vg_folio_object_policy_set (struct vg_folio *folio, int object,
+ struct vg_object_policy policy)
{
#ifdef RM_INTERN
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -221,7 +221,7 @@ vg_folio_object_policy_set (struct folio *folio, int object,
#include <bit-array.h>
static inline bool
-folio_object_wait_queue_p (struct folio *folio, int object)
+folio_object_wait_queue_p (struct vg_folio *folio, int object)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -229,7 +229,7 @@ folio_object_wait_queue_p (struct folio *folio, int object)
}
static inline void
-folio_object_wait_queue_p_set (struct folio *folio, int object,
+folio_object_wait_queue_p_set (struct vg_folio *folio, int object,
bool valid)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -239,7 +239,7 @@ folio_object_wait_queue_p_set (struct folio *folio, int object,
}
static inline vg_oid_t
-folio_object_wait_queue (struct folio *folio, int object)
+folio_object_wait_queue (struct vg_folio *folio, int object)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -247,7 +247,7 @@ folio_object_wait_queue (struct folio *folio, int object)
}
static inline void
-folio_object_wait_queue_set (struct folio *folio, int object,
+folio_object_wait_queue_set (struct vg_folio *folio, int object,
vg_oid_t head)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -256,7 +256,7 @@ folio_object_wait_queue_set (struct folio *folio, int object,
}
static inline uint32_t
-folio_object_version (struct folio *folio, int object)
+folio_object_version (struct vg_folio *folio, int object)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -264,7 +264,7 @@ folio_object_version (struct folio *folio, int object)
}
static inline void
-folio_object_version_set (struct folio *folio, int object,
+folio_object_version_set (struct vg_folio *folio, int object,
uint32_t version)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -273,7 +273,7 @@ folio_object_version_set (struct folio *folio, int object,
}
static inline bool
-folio_object_content (struct folio *folio, int object)
+folio_object_content (struct vg_folio *folio, int object)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -281,7 +281,7 @@ folio_object_content (struct folio *folio, int object)
}
static inline void
-folio_object_content_set (struct folio *folio, int object,
+folio_object_content_set (struct vg_folio *folio, int object,
bool content)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -290,7 +290,7 @@ folio_object_content_set (struct folio *folio, int object,
}
static inline bool
-folio_object_discarded (struct folio *folio, int object)
+folio_object_discarded (struct vg_folio *folio, int object)
{
assert (object >= 0 && object < VG_FOLIO_OBJECTS);
@@ -298,7 +298,7 @@ folio_object_discarded (struct folio *folio, int object)
}
static inline void
-folio_object_discarded_set (struct folio *folio, int object, bool valid)
+folio_object_discarded_set (struct vg_folio *folio, int object, bool valid)
{
assert (object >= 0 && object < VG_FOLIO_OBJECTS);
@@ -307,7 +307,7 @@ folio_object_discarded_set (struct folio *folio, int object, bool valid)
}
static inline bool
-folio_object_referenced (struct folio *folio, int object)
+folio_object_referenced (struct vg_folio *folio, int object)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -315,7 +315,7 @@ folio_object_referenced (struct folio *folio, int object)
}
static inline void
-folio_object_referenced_set (struct folio *folio, int object, bool p)
+folio_object_referenced_set (struct vg_folio *folio, int object, bool p)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -323,7 +323,7 @@ folio_object_referenced_set (struct folio *folio, int object, bool p)
}
static inline bool
-folio_object_dirty (struct folio *folio, int object)
+folio_object_dirty (struct vg_folio *folio, int object)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -331,7 +331,7 @@ folio_object_dirty (struct folio *folio, int object)
}
static inline void
-folio_object_dirty_set (struct folio *folio, int object, bool p)
+folio_object_dirty_set (struct vg_folio *folio, int object, bool p)
{
assert (object >= -1 && object < VG_FOLIO_OBJECTS);
@@ -351,20 +351,20 @@ folio_object_dirty_set (struct folio *folio, int object, bool p)
__foc_cap.version = folio_object_version (__foc_folio, \
__foc_object); \
\
- struct vg_cap_properties __foc_cap_properties \
+ struct vg_cap_properties __foc_cap_properties \
= VG_CAP_PROPERTIES (vg_folio_object_policy (__foc_folio, __foc_object), \
VG_CAP_ADDR_TRANS_VOID); \
VG_CAP_PROPERTIES_SET (&__foc_cap, __foc_cap_properties); \
\
__foc_cap.oid \
- = object_to_object_desc ((struct object *) __foc_folio)->oid \
+ = object_to_object_desc ((struct vg_object *) __foc_folio)->oid \
+ 1 + __foc_object; \
\
__foc_cap; \
})
#else
static inline struct vg_cap
-vg_folio_object_cap (struct folio *folio, int object)
+vg_folio_object_cap (struct vg_folio *folio, int object)
{
assert (0 <= object && object < VG_FOLIO_OBJECTS);
return folio->objects[object];
@@ -389,7 +389,7 @@ enum
policy. */
RPC(folio_alloc, 1, 0, 1,
/* cap_t, principal, cap_t, activity, */
- struct folio_policy, policy, cap_t, folio)
+ struct vg_folio_policy, policy, cap_t, folio)
/* Free the folio designated by FOLIO. */
RPC(folio_free, 0, 0, 0
@@ -407,7 +407,7 @@ RPC(folio_free, 0, 0, 0
RPC(folio_object_alloc, 4, 0, 2,
/* cap_t, principal, cap_t, folio, */
uintptr_t, index, uintptr_t, type,
- struct object_policy, policy, uintptr_t, return_code,
+ struct vg_object_policy, policy, uintptr_t, return_code,
/* Out: */
cap_t, object, cap_t, object_weak)
@@ -432,9 +432,9 @@ enum
set, set the corresponding values based on the value of POLICY. */
RPC(folio_policy, 2, 1, 0,
/* cap_t, principal, cap_t, folio, */
- uintptr_t, flags, struct folio_policy, policy,
+ uintptr_t, flags, struct vg_folio_policy, policy,
/* Out: */
- struct folio_policy, old)
+ struct vg_folio_policy, old)
#undef RPC_STUB_PREFIX
#undef RPC_ID_PREFIX
diff --git a/libviengoos/viengoos/thread.h b/libviengoos/viengoos/thread.h
index 2c95f49..a61859f 100644
--- a/libviengoos/viengoos/thread.h
+++ b/libviengoos/viengoos/thread.h
@@ -138,36 +138,6 @@ enum
#define VG_THREAD_SLOTS_LOG2 2
enum
-{
- HURD_EXREGS_SET_UTCB = 0x2000,
- HURD_EXREGS_SET_EXCEPTION_MESSENGER = 0x1000,
- HURD_EXREGS_SET_ASPACE = 0x800,
- HURD_EXREGS_SET_ACTIVITY = 0x400,
- HURD_EXREGS_SET_SP = _L4_XCHG_REGS_SET_SP,
- HURD_EXREGS_SET_IP = _L4_XCHG_REGS_SET_IP,
- HURD_EXREGS_SET_SP_IP = _L4_XCHG_REGS_SET_SP | _L4_XCHG_REGS_SET_IP,
- HURD_EXREGS_SET_EFLAGS = _L4_XCHG_REGS_SET_FLAGS,
- HURD_EXREGS_SET_USER_HANDLE = _L4_XCHG_REGS_SET_USER_HANDLE,
- HURD_EXREGS_SET_REGS = (HURD_EXREGS_SET_UTCB
- | HURD_EXREGS_SET_EXCEPTION_MESSENGER
- | HURD_EXREGS_SET_ASPACE
- | HURD_EXREGS_SET_ACTIVITY
- | HURD_EXREGS_SET_SP
- | HURD_EXREGS_SET_IP
- | HURD_EXREGS_SET_EFLAGS
- | HURD_EXREGS_SET_USER_HANDLE),
-
- HURD_EXREGS_GET_REGS = _L4_XCHG_REGS_DELIVER,
-
- HURD_EXREGS_START = _L4_XCHG_REGS_SET_HALT,
- HURD_EXREGS_STOP = _L4_XCHG_REGS_SET_HALT | _L4_XCHG_REGS_HALT,
-
- HURD_EXREGS_ABORT_SEND = _L4_XCHG_REGS_CANCEL_SEND,
- HURD_EXREGS_ABORT_RECEIVE = _L4_XCHG_REGS_CANCEL_RECV,
- HURD_EXREGS_ABORT_IPC = HURD_EXREGS_ABORT_SEND | _L4_XCHG_REGS_CANCEL_RECV,
-};
-
-enum
{
VG_thread_exregs = 600,
VG_thread_id,
@@ -186,7 +156,37 @@ typedef vg_addr_t vg_thread_t;
#include <viengoos/rpc.h>
-struct hurd_thread_exregs_in
+enum
+{
+ VG_EXREGS_SET_UTCB = 0x2000,
+ VG_EXREGS_SET_EXCEPTION_MESSENGER = 0x1000,
+ VG_EXREGS_SET_ASPACE = 0x800,
+ VG_EXREGS_SET_ACTIVITY = 0x400,
+ VG_EXREGS_SET_SP = _L4_XCHG_REGS_SET_SP,
+ VG_EXREGS_SET_IP = _L4_XCHG_REGS_SET_IP,
+ VG_EXREGS_SET_SP_IP = _L4_XCHG_REGS_SET_SP | _L4_XCHG_REGS_SET_IP,
+ VG_EXREGS_SET_EFLAGS = _L4_XCHG_REGS_SET_FLAGS,
+ VG_EXREGS_SET_USER_HANDLE = _L4_XCHG_REGS_SET_USER_HANDLE,
+ VG_EXREGS_SET_REGS = (VG_EXREGS_SET_UTCB
+ | VG_EXREGS_SET_EXCEPTION_MESSENGER
+ | VG_EXREGS_SET_ASPACE
+ | VG_EXREGS_SET_ACTIVITY
+ | VG_EXREGS_SET_SP
+ | VG_EXREGS_SET_IP
+ | VG_EXREGS_SET_EFLAGS
+ | VG_EXREGS_SET_USER_HANDLE),
+
+ VG_EXREGS_GET_REGS = _L4_XCHG_REGS_DELIVER,
+
+ VG_EXREGS_START = _L4_XCHG_REGS_SET_HALT,
+ VG_EXREGS_STOP = _L4_XCHG_REGS_SET_HALT | _L4_XCHG_REGS_HALT,
+
+ VG_EXREGS_ABORT_SEND = _L4_XCHG_REGS_CANCEL_SEND,
+ VG_EXREGS_ABORT_RECEIVE = _L4_XCHG_REGS_CANCEL_RECV,
+ VG_EXREGS_ABORT_IPC = VG_EXREGS_ABORT_SEND | _L4_XCHG_REGS_CANCEL_RECV,
+};
+
+struct vg_thread_exregs_in
{
uintptr_t aspace_cap_properties_flags;
struct vg_cap_properties aspace_cap_properties;
@@ -197,7 +197,7 @@ struct hurd_thread_exregs_in
uintptr_t user_handle;
};
-struct hurd_thread_exregs_out
+struct vg_thread_exregs_out
{
uintptr_t sp;
uintptr_t ip;
@@ -208,50 +208,53 @@ struct hurd_thread_exregs_out
/* l4_exregs wrapper. */
RPC (thread_exregs, 6, 1, 4,
/* cap_t principal, cap_t thread, */
- uintptr_t, control, struct hurd_thread_exregs_in, in,
+ uintptr_t, control, struct vg_thread_exregs_in, in,
cap_t, aspace, cap_t, activity, cap_t, utcb, cap_t, exception_messenger,
/* Out: */
- struct hurd_thread_exregs_out, out,
+ struct vg_thread_exregs_out, out,
cap_t, aspace_out, cap_t, activity_out, cap_t, utcb_out,
cap_t, exception_messenger_out)
static inline error_t
vg_thread_start (vg_addr_t thread)
{
- struct hurd_thread_exregs_in in;
- struct hurd_thread_exregs_out out;
+ struct vg_thread_exregs_in in;
+ struct vg_thread_exregs_out out;
return vg_thread_exregs (VG_ADDR_VOID, thread,
- HURD_EXREGS_START | HURD_EXREGS_ABORT_IPC,
- in, VG_ADDR_VOID, VG_ADDR_VOID, VG_ADDR_VOID, VG_ADDR_VOID,
+ VG_EXREGS_START | VG_EXREGS_ABORT_IPC,
+ in, VG_ADDR_VOID, VG_ADDR_VOID,
+ VG_ADDR_VOID, VG_ADDR_VOID,
&out, NULL, NULL, NULL, NULL);
}
static inline error_t
vg_thread_start_sp_ip (vg_addr_t thread, uintptr_t sp, uintptr_t ip)
{
- struct hurd_thread_exregs_in in;
- struct hurd_thread_exregs_out out;
+ struct vg_thread_exregs_in in;
+ struct vg_thread_exregs_out out;
in.sp = sp;
in.ip = ip;
return vg_thread_exregs (VG_ADDR_VOID, thread,
- HURD_EXREGS_START | HURD_EXREGS_ABORT_IPC
- | HURD_EXREGS_SET_SP_IP,
- in, VG_ADDR_VOID, VG_ADDR_VOID, VG_ADDR_VOID, VG_ADDR_VOID,
+ VG_EXREGS_START | VG_EXREGS_ABORT_IPC
+ | VG_EXREGS_SET_SP_IP,
+ in, VG_ADDR_VOID, VG_ADDR_VOID,
+ VG_ADDR_VOID, VG_ADDR_VOID,
&out, NULL, NULL, NULL, NULL);
}
static inline error_t
vg_thread_stop (vg_addr_t thread)
{
- struct hurd_thread_exregs_in in;
- struct hurd_thread_exregs_out out;
+ struct vg_thread_exregs_in in;
+ struct vg_thread_exregs_out out;
return vg_thread_exregs (VG_ADDR_VOID, thread,
- HURD_EXREGS_STOP | HURD_EXREGS_ABORT_IPC,
- in, VG_ADDR_VOID, VG_ADDR_VOID, VG_ADDR_VOID, VG_ADDR_VOID,
+ VG_EXREGS_STOP | VG_EXREGS_ABORT_IPC,
+ in, VG_ADDR_VOID, VG_ADDR_VOID,
+ VG_ADDR_VOID, VG_ADDR_VOID,
&out, NULL, NULL, NULL, NULL);
}
@@ -266,7 +269,7 @@ RPC(thread_activation_collect, 0, 0, 0
#undef RPC_STUB_PREFIX
#undef RPC_ID_PREFIX
-
+
static inline vg_thread_id_t
vg_myself (void)
{
@@ -277,14 +280,14 @@ vg_myself (void)
return tid;
}
-#define RPC_STUB_PREFIX activation
-#define RPC_ID_PREFIX ACTIVATION
+#define RPC_STUB_PREFIX vg_activation
+#define RPC_ID_PREFIX VG_ACTIVATION
#include <viengoos/rpc.h>
/* Activation message ids. */
enum
{
- ACTIVATION_fault = 10,
+ VG_ACTIVATION_fault = 10,
};
/* Return a string corresponding to a message id. */
@@ -293,7 +296,7 @@ vg_activation_method_id_string (uintptr_t id)
{
switch (id)
{
- case ACTIVATION_fault:
+ case VG_ACTIVATION_fault:
return "fault";
default:
return "unknown";