diff options
author | Neal H. Walfield <neal@gnu.org> | 2008-12-18 10:48:24 +0100 |
---|---|---|
committer | Neal H. Walfield <neal@gnu.org> | 2008-12-18 10:48:24 +0100 |
commit | 61ce081e93aaf465a31beb41dd4094575cfbb19f (patch) | |
tree | 5570a5239f5adb8f5bd852f902fe3d4ca481d41c /libviengoos | |
parent | 87bfe7ed7bbe4dd4350f420cc9649809bef6d5a4 (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/ChangeLog | 67 | ||||
-rw-r--r-- | libviengoos/viengoos/activity.h | 34 | ||||
-rw-r--r-- | libviengoos/viengoos/addr.h | 35 | ||||
-rw-r--r-- | libviengoos/viengoos/cap.h | 47 | ||||
-rw-r--r-- | libviengoos/viengoos/folio.h | 66 | ||||
-rw-r--r-- | libviengoos/viengoos/thread.h | 107 |
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"; |