git: 9b091f12008f - main - kinst: simplify trampoline fill definitions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 03 Jun 2023 17:05:19 UTC
The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=9b091f12008f060cd1c03b91b020f24187341d60 commit 9b091f12008f060cd1c03b91b020f24187341d60 Author: Christos Margiolis <christos@FreeBSD.org> AuthorDate: 2023-06-03 17:04:57 +0000 Commit: Christos Margiolis <christos@FreeBSD.org> CommitDate: 2023-06-03 17:04:57 +0000 kinst: simplify trampoline fill definitions Centralize KINST_TRAMP_FILL_PATTERN and KINST_TRAMP_FILL_SIZE to reduce redefinitions, and use the architecture-dependent kinst_patchval_t as their size. Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40406 --- sys/cddl/dev/kinst/amd64/kinst_isa.h | 6 ++---- sys/cddl/dev/kinst/trampoline.c | 5 ++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/cddl/dev/kinst/amd64/kinst_isa.h b/sys/cddl/dev/kinst/amd64/kinst_isa.h index eb4f79c4c726..bd7d40f4bd06 100644 --- a/sys/cddl/dev/kinst/amd64/kinst_isa.h +++ b/sys/cddl/dev/kinst/amd64/kinst_isa.h @@ -17,10 +17,8 @@ * have 2 instructions stored in the trampoline, and each of them can take up * to 16 bytes, 32 bytes is enough to cover even the worst case scenario. */ -#define KINST_TRAMP_SIZE 32 -#define KINST_TRAMPCHUNK_SIZE PAGE_SIZE -#define KINST_TRAMP_FILL_PATTERN ((uint8_t []){KINST_PATCHVAL}) -#define KINST_TRAMP_FILL_SIZE sizeof(uint8_t) +#define KINST_TRAMP_SIZE 32 +#define KINST_TRAMPCHUNK_SIZE PAGE_SIZE typedef uint8_t kinst_patchval_t; diff --git a/sys/cddl/dev/kinst/trampoline.c b/sys/cddl/dev/kinst/trampoline.c index 75efd022fb20..5c8c27343201 100644 --- a/sys/cddl/dev/kinst/trampoline.c +++ b/sys/cddl/dev/kinst/trampoline.c @@ -28,7 +28,10 @@ #include "kinst.h" #include "kinst_isa.h" -#define KINST_TRAMPS_PER_CHUNK (KINST_TRAMPCHUNK_SIZE / KINST_TRAMP_SIZE) +#define KINST_TRAMP_FILL_PATTERN ((kinst_patchval_t []){KINST_PATCHVAL}) +#define KINST_TRAMP_FILL_SIZE sizeof(kinst_patchval_t) + +#define KINST_TRAMPS_PER_CHUNK (KINST_TRAMPCHUNK_SIZE / KINST_TRAMP_SIZE) struct trampchunk { TAILQ_ENTRY(trampchunk) next;