aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/mps.h46
-rw-r--r--mps/code/mpsacl.h2
-rw-r--r--mps/code/mpscams.h2
-rw-r--r--mps/code/mpscawl.h2
-rw-r--r--mps/code/mpscmfs.h2
-rw-r--r--mps/code/mpscmvff.h6
-rw-r--r--mps/code/mpscmvt.h4
7 files changed, 31 insertions, 33 deletions
diff --git a/mps/code/mps.h b/mps/code/mps.h
index 67d1f77738c..1eb0f230689 100644
--- a/mps/code/mps.h
+++ b/mps/code/mps.h
@@ -123,69 +123,67 @@ extern mps_arg_s mps_args_none[];
123 123
124extern const struct mps_key_s _mps_key_arena_size; 124extern const struct mps_key_s _mps_key_arena_size;
125#define MPS_KEY_ARENA_SIZE (&_mps_key_arena_size) 125#define MPS_KEY_ARENA_SIZE (&_mps_key_arena_size)
126#define MPS_KEY_ARENA_SIZE_FIELD() size 126#define MPS_KEY_ARENA_SIZE_FIELD size
127extern const struct mps_key_s _mps_key_format; 127extern const struct mps_key_s _mps_key_format;
128#define MPS_KEY_FORMAT (&_mps_key_format) 128#define MPS_KEY_FORMAT (&_mps_key_format)
129#define MPS_KEY_FORMAT_FIELD() format 129#define MPS_KEY_FORMAT_FIELD format
130extern const struct mps_key_s _mps_key_chain; 130extern const struct mps_key_s _mps_key_chain;
131#define MPS_KEY_CHAIN (&_mps_key_chain) 131#define MPS_KEY_CHAIN (&_mps_key_chain)
132#define MPS_KEY_CHAIN_FIELD() chain 132#define MPS_KEY_CHAIN_FIELD chain
133extern const struct mps_key_s _mps_key_rank; 133extern const struct mps_key_s _mps_key_rank;
134#define MPS_KEY_RANK (&_mps_key_rank) 134#define MPS_KEY_RANK (&_mps_key_rank)
135#define MPS_KEY_RANK_FIELD() rank 135#define MPS_KEY_RANK_FIELD rank
136 136
137extern const struct mps_key_s _mps_key_extend_by; 137extern const struct mps_key_s _mps_key_extend_by;
138#define MPS_KEY_EXTEND_BY (&_mps_key_extend_by) 138#define MPS_KEY_EXTEND_BY (&_mps_key_extend_by)
139#define MPS_KEY_EXTEND_BY_FIELD() size 139#define MPS_KEY_EXTEND_BY_FIELD size
140extern const struct mps_key_s _mps_key_min_size; 140extern const struct mps_key_s _mps_key_min_size;
141#define MPS_KEY_MIN_SIZE (&_mps_key_min_size) 141#define MPS_KEY_MIN_SIZE (&_mps_key_min_size)
142#define MPS_KEY_MIN_SIZE_FIELD() size 142#define MPS_KEY_MIN_SIZE_FIELD size
143extern const struct mps_key_s _mps_key_mean_size; 143extern const struct mps_key_s _mps_key_mean_size;
144#define MPS_KEY_MEAN_SIZE (&_mps_key_mean_size) 144#define MPS_KEY_MEAN_SIZE (&_mps_key_mean_size)
145#define MPS_KEY_MEAN_SIZE_FIELD() size 145#define MPS_KEY_MEAN_SIZE_FIELD size
146extern const struct mps_key_s _mps_key_max_size; 146extern const struct mps_key_s _mps_key_max_size;
147#define MPS_KEY_MAX_SIZE (&_mps_key_max_size) 147#define MPS_KEY_MAX_SIZE (&_mps_key_max_size)
148#define MPS_KEY_MAX_SIZE_FIELD() size 148#define MPS_KEY_MAX_SIZE_FIELD size
149extern const struct mps_key_s _mps_key_align; 149extern const struct mps_key_s _mps_key_align;
150#define MPS_KEY_ALIGN (&_mps_key_align) 150#define MPS_KEY_ALIGN (&_mps_key_align)
151#define MPS_KEY_ALIGN_FIELD() align 151#define MPS_KEY_ALIGN_FIELD align
152 152
153extern const struct mps_key_s _mps_key_vmw3_top_down; 153extern const struct mps_key_s _mps_key_vmw3_top_down;
154#define MPS_KEY_VMW3_TOP_DOWN (&_mps_key_vmw3_top_down) 154#define MPS_KEY_VMW3_TOP_DOWN (&_mps_key_vmw3_top_down)
155#define MPS_KEY_VMW3_TOP_DOWN_FIELD() b 155#define MPS_KEY_VMW3_TOP_DOWN_FIELD b
156 156
157/* Maximum length of a keyword argument list. */ 157/* Maximum length of a keyword argument list. */
158#define MPS_ARGS_MAX 32 158#define MPS_ARGS_MAX 32
159 159
160#define MPS_ARGS_BEGIN(_var) \ 160#define MPS_ARGS_BEGIN(_var) \
161 BEGIN \ 161 MPS_BEGIN \
162 mps_arg_s _var[MPS_ARGS_MAX]; \ 162 mps_arg_s _var[MPS_ARGS_MAX]; \
163 unsigned _var##_i = 0; \ 163 unsigned _var##_i = 0; \
164 BEGIN 164 MPS_BEGIN
165 165
166#define MPS_ARGS_ADD_FIELD(_var, _key, _field, _val) \ 166#define MPS_ARGS_ADD_FIELD(_var, _key, _field, _val) \
167 BEGIN \ 167 MPS_BEGIN \
168 AVER(_var##_i < MPS_ARGS_MAX); \ 168 /* TODO: AVER(_var##_i < MPS_ARGS_MAX); */ \
169 _var[_var##_i].key = (_key); \ 169 _var[_var##_i].key = (_key); \
170 _var[_var##_i].val._field = (_val); \ 170 _var[_var##_i].val._field = (_val); \
171 ++_var##_i; \ 171 ++_var##_i; \
172 END 172 MPS_END
173 173
174#define MPS_ARGS_ADD(_var, _key, _val) \ 174#define MPS_ARGS_ADD(_var, _key, _val) \
175 MPS_ARGS_ADD_FIELD(_var, _key, _key##_FIELD(), _val) 175 MPS_ARGS_ADD_FIELD(_var, _key, _key##_FIELD, _val)
176 176
177#define MPS_ARGS_DONE(_var) \ 177#define MPS_ARGS_DONE(_var) \
178 BEGIN \ 178 MPS_BEGIN \
179 AVER(_var##_i < MPS_ARGS_MAX); \ 179 /* TODO: AVER(_var##_i < MPS_ARGS_MAX); */ \
180 _var[_var##_i].key = MPS_KEY_ARGS_END; \ 180 _var[_var##_i].key = MPS_KEY_ARGS_END; \
181 _var##_i = MPS_ARGS_MAX; \ 181 /* TODO: _var##_i = MPS_ARGS_MAX; */ \
182 END 182 MPS_END
183 183
184#define MPS_ARGS_END(_var) \ 184#define MPS_ARGS_END(_var) \
185 END; \ 185 MPS_END; \
186 END 186 MPS_END
187
188#define MPS_ARG(_key, _val) ((mps_arg_s){(_key), {._key##_FIELD() = (_val)}})
189 187
190 188
191/* <a id="message.types"> Keep in sync with 189/* <a id="message.types"> Keep in sync with
diff --git a/mps/code/mpsacl.h b/mps/code/mpsacl.h
index 9f8ea3f6362..b9fc2913f63 100644
--- a/mps/code/mpsacl.h
+++ b/mps/code/mpsacl.h
@@ -12,7 +12,7 @@
12/* Client arena base address argument */ 12/* Client arena base address argument */
13extern const struct mps_key_s _mps_key_arena_cl_addr; 13extern const struct mps_key_s _mps_key_arena_cl_addr;
14#define MPS_KEY_ARENA_CL_BASE (&_mps_key_arena_cl_addr) 14#define MPS_KEY_ARENA_CL_BASE (&_mps_key_arena_cl_addr)
15#define MPS_KEY_ARENA_CL_BASE_FIELD() addr 15#define MPS_KEY_ARENA_CL_BASE_FIELD addr
16 16
17extern mps_arena_class_t mps_arena_class_cl(void); 17extern mps_arena_class_t mps_arena_class_cl(void);
18 18
diff --git a/mps/code/mpscams.h b/mps/code/mpscams.h
index f410c2734dd..5c1cc1b6f8f 100644
--- a/mps/code/mpscams.h
+++ b/mps/code/mpscams.h
@@ -12,7 +12,7 @@
12 12
13extern const struct mps_key_s _mps_key_ams_support_ambiguous; 13extern const struct mps_key_s _mps_key_ams_support_ambiguous;
14#define MPS_KEY_AMS_SUPPORT_AMBIGUOUS (&_mps_key_ams_support_ambiguous) 14#define MPS_KEY_AMS_SUPPORT_AMBIGUOUS (&_mps_key_ams_support_ambiguous)
15#define MPS_KEY_AMS_SUPPORT_AMBIGUOUS_FIELD() b 15#define MPS_KEY_AMS_SUPPORT_AMBIGUOUS_FIELD b
16 16
17extern mps_class_t mps_class_ams(void); 17extern mps_class_t mps_class_ams(void);
18extern mps_class_t mps_class_ams_debug(void); 18extern mps_class_t mps_class_ams_debug(void);
diff --git a/mps/code/mpscawl.h b/mps/code/mpscawl.h
index 5271560b11f..4c0af1fb17e 100644
--- a/mps/code/mpscawl.h
+++ b/mps/code/mpscawl.h
@@ -11,7 +11,7 @@
11 11
12extern const struct mps_key_s _mps_key_awl_find_dependent; 12extern const struct mps_key_s _mps_key_awl_find_dependent;
13#define MPS_KEY_AWL_FIND_DEPENDENT (&_mps_key_awl_find_dependent) 13#define MPS_KEY_AWL_FIND_DEPENDENT (&_mps_key_awl_find_dependent)
14#define MPS_KEY_AWL_FIND_DEPENDENT_FIELD() addr_method 14#define MPS_KEY_AWL_FIND_DEPENDENT_FIELD addr_method
15 15
16extern mps_class_t mps_class_awl(void); 16extern mps_class_t mps_class_awl(void);
17 17
diff --git a/mps/code/mpscmfs.h b/mps/code/mpscmfs.h
index 87f6e108424..cc0a411260b 100644
--- a/mps/code/mpscmfs.h
+++ b/mps/code/mpscmfs.h
@@ -11,7 +11,7 @@
11 11
12extern const struct mps_key_s _mps_key_mfs_unit_size; 12extern const struct mps_key_s _mps_key_mfs_unit_size;
13#define MPS_KEY_MFS_UNIT_SIZE (&_mps_key_mfs_unit_size) 13#define MPS_KEY_MFS_UNIT_SIZE (&_mps_key_mfs_unit_size)
14#define MPS_KEY_MFS_UNIT_SIZE_FIELD() size 14#define MPS_KEY_MFS_UNIT_SIZE_FIELD size
15 15
16extern mps_class_t mps_class_mfs(void); 16extern mps_class_t mps_class_mfs(void);
17 17
diff --git a/mps/code/mpscmvff.h b/mps/code/mpscmvff.h
index 09164872b76..f8bc97b7f3b 100644
--- a/mps/code/mpscmvff.h
+++ b/mps/code/mpscmvff.h
@@ -11,13 +11,13 @@
11 11
12extern const struct mps_key_s _mps_key_mvff_slot_high; 12extern const struct mps_key_s _mps_key_mvff_slot_high;
13#define MPS_KEY_MVFF_SLOT_HIGH (&_mps_key_mvff_slot_high) 13#define MPS_KEY_MVFF_SLOT_HIGH (&_mps_key_mvff_slot_high)
14#define MPS_KEY_MVFF_SLOT_HIGH_FIELD() b 14#define MPS_KEY_MVFF_SLOT_HIGH_FIELD b
15extern const struct mps_key_s _mps_key_mvff_arena_high; 15extern const struct mps_key_s _mps_key_mvff_arena_high;
16#define MPS_KEY_MVFF_ARENA_HIGH (&_mps_key_mvff_arena_high) 16#define MPS_KEY_MVFF_ARENA_HIGH (&_mps_key_mvff_arena_high)
17#define MPS_KEY_MVFF_ARENA_HIGH_FIELD() b 17#define MPS_KEY_MVFF_ARENA_HIGH_FIELD b
18extern const struct mps_key_s _mps_key_mvff_first_fit; 18extern const struct mps_key_s _mps_key_mvff_first_fit;
19#define MPS_KEY_MVFF_FIRST_FIT (&_mps_key_mvff_first_fit) 19#define MPS_KEY_MVFF_FIRST_FIT (&_mps_key_mvff_first_fit)
20#define MPS_KEY_MVFF_FIRST_FIT_FIELD() b 20#define MPS_KEY_MVFF_FIRST_FIT_FIELD b
21 21
22extern size_t mps_mvff_free_size(mps_pool_t mps_pool); 22extern size_t mps_mvff_free_size(mps_pool_t mps_pool);
23extern size_t mps_mvff_size(mps_pool_t mps_pool); 23extern size_t mps_mvff_size(mps_pool_t mps_pool);
diff --git a/mps/code/mpscmvt.h b/mps/code/mpscmvt.h
index 2237639310b..5a1e5eb6ad5 100644
--- a/mps/code/mpscmvt.h
+++ b/mps/code/mpscmvt.h
@@ -11,10 +11,10 @@
11 11
12extern const struct mps_key_s _mps_key_mvt_reserve_depth; 12extern const struct mps_key_s _mps_key_mvt_reserve_depth;
13#define MPS_KEY_MVT_RESERVE_DEPTH (&_mps_key_mvt_reserve_depth) 13#define MPS_KEY_MVT_RESERVE_DEPTH (&_mps_key_mvt_reserve_depth)
14#define MPS_KEY_MVT_RESERVE_DEPTH_FIELD() count 14#define MPS_KEY_MVT_RESERVE_DEPTH_FIELD count
15extern const struct mps_key_s _mps_key_mvt_frag_limit; 15extern const struct mps_key_s _mps_key_mvt_frag_limit;
16#define MPS_KEY_MVT_FRAG_LIMIT (&_mps_key_mvt_frag_limit) 16#define MPS_KEY_MVT_FRAG_LIMIT (&_mps_key_mvt_frag_limit)
17#define MPS_KEY_MVT_FRAG_LIMIT_FIELD() count 17#define MPS_KEY_MVT_FRAG_LIMIT_FIELD count
18 18
19/* The mvt pool class has five extra parameters to mps_pool_create: 19/* The mvt pool class has five extra parameters to mps_pool_create:
20 * mps_res_t mps_pool_create(mps_pool_t * pool, mps_arena_t arena, 20 * mps_res_t mps_pool_create(mps_pool_t * pool, mps_arena_t arena,