diff options
| author | Gareth Rees | 2013-05-13 21:01:38 +0100 |
|---|---|---|
| committer | Gareth Rees | 2013-05-13 21:01:38 +0100 |
| commit | 56b78ef7b97b3297bcb2c1130cd024ff8b00cc67 (patch) | |
| tree | c5b5b121ffb26f91ac1b0e13c401a24bd24de14f /mps/code | |
| parent | 81a5ba77fa4aea6589fe824050aca3e4ec4ea392 (diff) | |
| download | emacs-56b78ef7b97b3297bcb2c1130cd024ff8b00cc67.tar.gz emacs-56b78ef7b97b3297bcb2c1130cd024ff8b00cc67.zip | |
Remove mps_arg from mps.h.
Use MPS_ARGS_BEGIN etc in the Scheme example and in the manual.
Use MPS_BEGIN and MPS_END instead of BEGIN and END.
The _FIELD macros don't need to be function-like macros.
Restore TODO comments in mps.h.
Scheme example compiles with -std=c89.
Copied from Perforce
Change: 181749
ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
| -rw-r--r-- | mps/code/mps.h | 46 | ||||
| -rw-r--r-- | mps/code/mpsacl.h | 2 | ||||
| -rw-r--r-- | mps/code/mpscams.h | 2 | ||||
| -rw-r--r-- | mps/code/mpscawl.h | 2 | ||||
| -rw-r--r-- | mps/code/mpscmfs.h | 2 | ||||
| -rw-r--r-- | mps/code/mpscmvff.h | 6 | ||||
| -rw-r--r-- | mps/code/mpscmvt.h | 4 |
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 | ||
| 124 | extern const struct mps_key_s _mps_key_arena_size; | 124 | extern 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 |
| 127 | extern const struct mps_key_s _mps_key_format; | 127 | extern 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 |
| 130 | extern const struct mps_key_s _mps_key_chain; | 130 | extern 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 |
| 133 | extern const struct mps_key_s _mps_key_rank; | 133 | extern 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 | ||
| 137 | extern const struct mps_key_s _mps_key_extend_by; | 137 | extern 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 |
| 140 | extern const struct mps_key_s _mps_key_min_size; | 140 | extern 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 |
| 143 | extern const struct mps_key_s _mps_key_mean_size; | 143 | extern 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 |
| 146 | extern const struct mps_key_s _mps_key_max_size; | 146 | extern 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 |
| 149 | extern const struct mps_key_s _mps_key_align; | 149 | extern 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 | ||
| 153 | extern const struct mps_key_s _mps_key_vmw3_top_down; | 153 | extern 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 */ |
| 13 | extern const struct mps_key_s _mps_key_arena_cl_addr; | 13 | extern 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 | ||
| 17 | extern mps_arena_class_t mps_arena_class_cl(void); | 17 | extern 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 | ||
| 13 | extern const struct mps_key_s _mps_key_ams_support_ambiguous; | 13 | extern 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 | ||
| 17 | extern mps_class_t mps_class_ams(void); | 17 | extern mps_class_t mps_class_ams(void); |
| 18 | extern mps_class_t mps_class_ams_debug(void); | 18 | extern 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 | ||
| 12 | extern const struct mps_key_s _mps_key_awl_find_dependent; | 12 | extern 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 | ||
| 16 | extern mps_class_t mps_class_awl(void); | 16 | extern 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 | ||
| 12 | extern const struct mps_key_s _mps_key_mfs_unit_size; | 12 | extern 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 | ||
| 16 | extern mps_class_t mps_class_mfs(void); | 16 | extern 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 | ||
| 12 | extern const struct mps_key_s _mps_key_mvff_slot_high; | 12 | extern 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 |
| 15 | extern const struct mps_key_s _mps_key_mvff_arena_high; | 15 | extern 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 |
| 18 | extern const struct mps_key_s _mps_key_mvff_first_fit; | 18 | extern 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 | ||
| 22 | extern size_t mps_mvff_free_size(mps_pool_t mps_pool); | 22 | extern size_t mps_mvff_free_size(mps_pool_t mps_pool); |
| 23 | extern size_t mps_mvff_size(mps_pool_t mps_pool); | 23 | extern 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 | ||
| 12 | extern const struct mps_key_s _mps_key_mvt_reserve_depth; | 12 | extern 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 |
| 15 | extern const struct mps_key_s _mps_key_mvt_frag_limit; | 15 | extern 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, |