1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-14 23:40:39 -08:00

Part of making extension callbacks part of the public mps.

* Move type and macro declarations to the public header mps.h.
* Move documentation to appropriate sections of manual.

(cherry picked from commit b928fa236178fb1bdbe20442c3f53b8e8a545a4b)
This commit is contained in:
Richard Brooksby 2023-04-13 10:07:58 +01:00
parent e3accea56d
commit bf20351ddb
3 changed files with 109 additions and 3 deletions

View file

@ -120,6 +120,13 @@ typedef mps_addr_t (*mps_fmt_isfwd_t)(mps_addr_t);
typedef void (*mps_fmt_pad_t)(mps_addr_t, size_t);
typedef mps_addr_t (*mps_fmt_class_t)(mps_addr_t);
/* Callbacks indicating that the arena has extended or contracted.
* These are used to register chunks with RtlInstallFunctionTableCallback
* <https://docs.microsoft.com/en-gb/windows/win32/api/winnt/nf-winnt-rtlinstallfunctiontablecallback>
* so that the client can unwind the stack through functions in the arena.
*/
typedef void (*mps_arena_extended_t)(mps_arena_t, mps_addr_t, size_t);
typedef void (*mps_arena_contracted_t)(mps_arena_t, mps_addr_t, size_t);
/* Keyword argument lists */
@ -171,6 +178,12 @@ extern const struct mps_key_s _mps_key_ARENA_SIZE;
extern const struct mps_key_s _mps_key_ARENA_ZONED;
#define MPS_KEY_ARENA_ZONED (&_mps_key_ARENA_ZONED)
#define MPS_KEY_ARENA_ZONED_FIELD b
extern const struct mps_key_s _mps_key_arena_extended;
#define MPS_KEY_ARENA_EXTENDED (&_mps_key_arena_extended)
#define MPS_KEY_ARENA_EXTENDED_FIELD fun
extern const struct mps_key_s _mps_key_arena_contracted;
#define MPS_KEY_ARENA_CONTRACTED (&_mps_key_arena_contracted)
#define MPS_KEY_ARENA_CONTRACTED_FIELD fun
extern const struct mps_key_s _mps_key_FORMAT;
#define MPS_KEY_FORMAT (&_mps_key_FORMAT)
#define MPS_KEY_FORMAT_FIELD format