1 /* 2 * Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. 3 * 4 */ 5 6 #ifndef __XEN_VIRTUAL_REGION_H__ 7 #define __XEN_VIRTUAL_REGION_H__ 8 9 #include <xen/list.h> 10 #include <xen/symbols.h> 11 12 struct virtual_region 13 { 14 struct list_head list; 15 const void *start; /* Virtual address start. */ 16 const void *end; /* Virtual address end. */ 17 18 /* If this is NULL the default lookup mechanism is used. */ 19 symbols_lookup_t *symbols_lookup; 20 21 struct { 22 const struct bug_frame *bugs; /* The pointer to array of bug frames. */ 23 size_t n_bugs; /* The number of them. */ 24 } frame[BUGFRAME_NR]; 25 26 const struct exception_table_entry *ex; 27 const struct exception_table_entry *ex_end; 28 }; 29 30 const struct virtual_region *find_text_region(unsigned long addr); 31 void setup_virtual_regions(const struct exception_table_entry *start, 32 const struct exception_table_entry *end); 33 void unregister_init_virtual_region(void); 34 void register_virtual_region(struct virtual_region *r); 35 void unregister_virtual_region(struct virtual_region *r); 36 37 #endif /* __XEN_VIRTUAL_REGION_H__ */ 38 39 /* 40 * Local variables: 41 * mode: C 42 * c-file-style: "BSD" 43 * c-basic-offset: 4 44 * tab-width: 4 45 * indent-tabs-mode: nil 46 * End: 47 */ 48