Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-unstable
xen
xen.trc-trc.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xen.trc-trc.patch of Package xen
From: Olaf Hering <olaf@aepfle.de> Date: Thu, 15 Jun 2023 07:45:50 +0000 Subject: trc trc Signed-off-by: Olaf Hering <olaf@aepfle.de> --- xen/include/public/trace.h | 217 +++++++++ 1 file changed, 217 insertions(+) --- a/xen/include/public/trace.h +++ b/xen/include/public/trace.h @@ -67,24 +67,241 @@ #define TRC_SCHED_CLASS_EVT(_c, _e) \ ( ( TRC_SCHED_CLASS | \ ((TRC_SCHED_##_c << TRC_SCHED_ID_SHIFT) & TRC_SCHED_ID_MASK) ) + \ ((_e) & TRC_SCHED_EVT_MASK) ) /* Trace classes for DOM0 operations */ #define TRC_DOM0_DOMOPS 0x00041000 /* Domains manipulations */ /* Trace classes for Hardware */ #define TRC_HW_PM 0x00801000 /* Power management traces */ #define TRC_HW_IRQ 0x00802000 /* Traces relating to the handling of IRQs */ +/* remove and add redundant info from pointers to direct map */ +/* the upper 17 bits are set, the lower 4 bits are clear */ +/* this leaves 47 bits of relevant information */ +#define TRC_DIRECTMAP_MASK ((1ULL << (64U-17U)) - 1ULL) +#define TRC_ePTR(_p) (((unsigned long long)(void *)(_p)) >> 4ULL) +#define TRC_dPTR(_v) ((_v)?(((_v) << 4ULL) | ~TRC_DIRECTMAP_MASK):0) +#define TRC_IOREQ_request_mapcache_invalidate (TRC_GEN + 64) +typedef struct trc_request_mapcache_invalidate { + unsigned int d:16, v:16; + unsigned int target:16, finished:1; +} trc_request_mapcache_invalidate_t; +#define TRC_IOREQ_signal_mapcache_invalidate (TRC_GEN + 65) +#define TRC_IOREQ_set_ioreq_server (TRC_GEN + 66) +typedef struct __attribute__((__packed__)) trc_set_ioreq_server { + unsigned long long s:47, target:16; + unsigned int pad:16, id:16; +} trc_set_ioreq_server_t; +#define TRC_IOREQ_get_ioreq_server (TRC_GEN + 67) +typedef struct __attribute__((__packed__)) trc_get_ioreq_server { + unsigned long long s; + unsigned int target:16, id:16; +} trc_get_ioreq_server_t; +#define TRC_IOREQ_get_ioreq (TRC_GEN + 68) +typedef struct __attribute__((__packed__)) trc_get_ioreq { + unsigned long long s; + unsigned int d:16, v:16; +} trc_get_ioreq_t; +#define TRC_IOREQ_domain_has_ioreq_server (TRC_GEN + 69) +typedef struct trc_domain_has_ioreq_server { + unsigned int d:16, has_ioreq:16; +} trc_domain_has_ioreq_server_t; +#define TRC_IOREQ_get_pending_vcpu (TRC_GEN + 70) +typedef struct __attribute__((__packed__)) trc_get_pending_vcpu { + unsigned long long s:47, v:16; + unsigned long long sv; +} trc_get_pending_vcpu_t; +#define TRC_IOREQ_vcpu_ioreq_pending (TRC_GEN + 71) +typedef struct __attribute__((__packed__)) trc_vcpu_ioreq_pending { + unsigned int d:16, v:15, b:1; +} trc_vcpu_ioreq_pending_t; +#define TRC_IOREQ_wait_for_io (TRC_GEN + 72) +typedef struct __attribute__((__packed__)) trc_wait_for_io { + unsigned long long sv; + unsigned int d:16, v:16; + unsigned int prev_state:4; + unsigned int state:4; + unsigned int counter:24; +} trc_wait_for_io_t; +#define TRC_IOREQ_vcpu_ioreq_handle_completion (TRC_GEN + 73) +typedef struct trc_vcpu_ioreq_handle_completion { + union { struct __attribute__((__packed__)) { + unsigned int d:16, v:16; + unsigned int completion:3, state:3, res:1, out:1; + }; uint32_t _x[2]; }; +} trc_vcpu_ioreq_handle_completion_t; +#define TRC_IOREQ_ioreq_server_alloc_mfn (TRC_GEN + 74) +typedef struct trc_ioreq_server_alloc_mfn { + union { struct __attribute__((__packed__)) { + unsigned long long s:47, buf:1; + unsigned int mfn; + }; uint32_t _x[3]; }; +} trc_ioreq_server_alloc_mfn_t; +#define TRC_IOREQ_ioreq_server_free_mfn (TRC_GEN + 75) +typedef struct trc_ioreq_server_free_mfn { + union { struct __attribute__((__packed__)) { + unsigned long long s:47, buf:1; + unsigned int mfn; + }; uint32_t _x[3]; }; +} trc_ioreq_server_free_mfn_t; +#define TRC_IOREQ_is_ioreq_server_page (TRC_GEN + 76) +typedef struct __attribute__((__packed__)) trc_is_ioreq_server_page { + unsigned int mfn; + unsigned int d:16, found:1; +} trc_is_ioreq_server_page_t; +#define TRC_IOREQ_ioreq_server_add_vcpu (TRC_GEN + 77) +typedef struct __attribute__((__packed__)) trc_ioreq_server_add_vcpu { + unsigned long long s:47, d:16; + unsigned long long sv:47, v:16; +} trc_ioreq_server_add_vcpu_t; +#define TRC_IOREQ_ioreq_server_remove_vcpu (TRC_GEN + 78) +typedef struct __attribute__((__packed__)) trc_ioreq_server_remove_vcpu { + unsigned long long s; + unsigned int d:16, v:16; +} trc_ioreq_server_remove_vcpu_t; +#define TRC_IOREQ_ioreq_server_remove_all_vcpus (TRC_GEN + 79) +typedef struct __attribute__((__packed__)) trc_ioreq_server_remove_all_vcpus { + unsigned long long s; +} trc_ioreq_server_remove_all_vcpus_t; +#define TRC_IOREQ_ioreq_server_alloc_pages (TRC_GEN + 80) +typedef struct __attribute__((__packed__)) trc_ioreq_server_alloc_pages { + unsigned long long s; +} trc_ioreq_server_alloc_pages_t; +#define TRC_IOREQ_ioreq_server_free_pages (TRC_GEN + 81) +typedef struct __attribute__((__packed__)) trc_ioreq_server_free_pages { + unsigned long long s; +} trc_ioreq_server_free_pages_t; +#define TRC_IOREQ_ioreq_server_free_rangesets (TRC_GEN + 82) +typedef struct __attribute__((__packed__)) trc_ioreq_server_free_rangesets { + unsigned long long s; +} trc_ioreq_server_free_rangesets_t; +#define TRC_IOREQ_ioreq_server_alloc_rangesets (TRC_GEN + 83) +typedef struct __attribute__((__packed__)) trc_ioreq_server_alloc_rangesets { + unsigned long long s:47, id:16; +} trc_ioreq_server_alloc_rangesets_t; +#define TRC_IOREQ_ioreq_server_enable (TRC_GEN + 84) +typedef struct __attribute__((__packed__)) trc_ioreq_server_enable { + unsigned long long s:47, enabled:1, pad:16; +} trc_ioreq_server_enable_t; +#define TRC_IOREQ_ioreq_server_disable (TRC_GEN + 85) +typedef struct __attribute__((__packed__)) trc_ioreq_server_disable { + unsigned long long s:47, enabled:1, pad:16; +} trc_ioreq_server_disable_t; +#define TRC_IOREQ_ioreq_server_init (TRC_GEN + 86) +typedef struct __attribute__((__packed__)) trc_ioreq_server_init { + unsigned long long s:47, id:15, bufreq:2; + unsigned int d:16, emulator:16; +} trc_ioreq_server_init_t; +#define TRC_IOREQ_ioreq_server_deinit (TRC_GEN + 87) +typedef struct __attribute__((__packed__)) trc_ioreq_server_deinit { + unsigned long long s:47, enabled:1, pad:16; +} trc_ioreq_server_deinit_t; +#define TRC_IOREQ_ioreq_server_create (TRC_GEN + 88) +typedef struct __attribute__((__packed__)) trc_ioreq_server_create { + unsigned int d:16, id:16; +} trc_ioreq_server_create_t; +#define TRC_IOREQ_ioreq_server_destroy (TRC_GEN + 89) +typedef struct __attribute__((__packed__)) trc_ioreq_server_destroy { + unsigned int d:16, id:16; +} trc_ioreq_server_destroy_t; +#define TRC_IOREQ_ioreq_server_get_info (TRC_GEN + 90) +typedef struct __attribute__((__packed__)) trc_ioreq_server_get_info { + unsigned long long s:47, d:16; + unsigned long long gfn:47, id:16; +} trc_ioreq_server_get_info_t; +#define TRC_IOREQ_ioreq_server_get_frame (TRC_GEN + 91) +typedef struct __attribute__((__packed__)) trc_ioreq_server_get_frame { + unsigned long long s:47, d:16; + unsigned long long gfn:47, id:16; +} trc_ioreq_server_get_frame_t; +#define TRC_IOREQ_ioreq_server_map_io_range (TRC_GEN + 92) +typedef struct trc_ioreq_server_map_io_range { + union { struct __attribute__((__packed__)) { + unsigned long long start; + unsigned long long end; + unsigned long d:16, id:16, type:4, rc:16; + }; uint32_t _x[6]; }; +} trc_ioreq_server_map_io_range_t; +#define TRC_IOREQ_ioreq_server_unmap_io_range (TRC_GEN + 93) +typedef struct trc_ioreq_server_unmap_io_range { + union { struct __attribute__((__packed__)) { + unsigned long long start; + unsigned long long end; + unsigned long d:16, id:16, type:4, rc:16; + }; uint32_t _x[6]; }; +} trc_ioreq_server_unmap_io_range_t; +#define TRC_IOREQ_ioreq_server_map_mem_type (TRC_GEN + 94) +typedef struct __attribute__((__packed__)) trc_ioreq_server_map_mem_type { + unsigned int d:16, id:16; + unsigned int type:4, flags:4; +} trc_ioreq_server_map_mem_type_t; +#define TRC_IOREQ_ioreq_server_set_state (TRC_GEN + 95) +typedef struct __attribute__((__packed__)) trc_ioreq_server_set_state { + unsigned int d:16, id:15, enabled:1; +} trc_ioreq_server_set_state_t; +#define TRC_IOREQ_ioreq_server_add_vcpu_all (TRC_GEN + 96) +typedef struct __attribute__((__packed__)) trc_ioreq_server_add_vcpu_all { + unsigned int d:16, v:16; +} trc_ioreq_server_add_vcpu_all_t; +#define TRC_IOREQ_ioreq_server_remove_vcpu_all (TRC_GEN + 97) +typedef struct __attribute__((__packed__)) trc_ioreq_server_remove_vcpu_all { + unsigned int d:16, v:16; +} trc_ioreq_server_remove_vcpu_all_t; +#define TRC_IOREQ_ioreq_server_destroy_all (TRC_GEN + 98) +typedef struct __attribute__((__packed__)) trc_ioreq_server_destroy_all { + unsigned int d; +} trc_ioreq_server_destroy_all_t; +#define TRC_IOREQ_ioreq_server_select (TRC_GEN + 99) +typedef struct trc_ioreq_server_select { + union { struct __attribute__((__packed__)) { + unsigned long long s; + unsigned int d:16, type:4; + }; uint32_t _x[3]; }; +} trc_ioreq_server_select_t; +#define TRC_IOREQ_ioreq_send_buffered (TRC_GEN + 100) +typedef struct trc_ioreq_send_buffered { + union { struct __attribute__((__packed__)) { + unsigned long long addr; + unsigned long long data; + unsigned int d:16, type:3, dir:1, size:4; + }; uint32_t _x[5]; }; +} trc_ioreq_send_buffered_t; +#define TRC_IOREQ_ioreq_send (TRC_GEN + 101) +typedef struct trc_ioreq_send { + union { struct __attribute__((__packed__)) { + unsigned long long s:47, d:16, dir:1; + unsigned long long addr; + unsigned long long data; + unsigned int count:9, vp_eport:9, type:3, size:4, state:4, data_is_ptr:1, df:1; + }; uint32_t _x[7]; }; +} trc_ioreq_send_t; +#define TRC_IOREQ_ioreq_broadcast (TRC_GEN + 102) +typedef struct trc_ioreq_broadcast { + union { struct __attribute__((__packed__)) { + unsigned long long addr; + unsigned long long data; + unsigned int d:16, type:3, dir:1, size:4; + }; uint32_t _x[5]; }; +} trc_ioreq_broadcast_t; +#define TRC_IOREQ_ioreq_domain_init (TRC_GEN + 103) +typedef struct trc_ioreq_domain_init { + unsigned int d:16; +} trc_ioreq_domain_init_t; +#define TRC_IOREQ_ioreq_server_dm_op (TRC_GEN + 104) +typedef struct trc_ioreq_server_dm_op { + unsigned int d:16, op:16; +} trc_ioreq_server_dm_op_t; + /* Trace events per class */ #define TRC_LOST_RECORDS (TRC_GEN + 1) #define TRC_TRACE_WRAP_BUFFER (TRC_GEN + 2) #define TRC_TRACE_CPU_CHANGE (TRC_GEN + 3) #define TRC_SCHED_RUNSTATE_CHANGE (TRC_SCHED_MIN + 1) #define TRC_SCHED_CONTINUE_RUNNING (TRC_SCHED_MIN + 2) #define TRC_SCHED_DOM_ADD (TRC_SCHED_VERBOSE + 1) #define TRC_SCHED_DOM_REM (TRC_SCHED_VERBOSE + 2) #define TRC_SCHED_SLEEP (TRC_SCHED_VERBOSE + 3) #define TRC_SCHED_WAKE (TRC_SCHED_VERBOSE + 4) #define TRC_SCHED_YIELD (TRC_SCHED_VERBOSE + 5)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor