Print this page
10908 Simplify SMAP relocations with krtld

*** 22,31 **** --- 22,34 ---- * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * Copyright 2017 RackTop Systems. */ + /* + * Copyright (c) 2017 Joyent, Inc. + */ #ifndef _SYS_KOBJ_H #define _SYS_KOBJ_H #include <sys/modctl.h>
*** 45,54 **** --- 48,63 ---- struct module_list { struct module_list *next; struct module *mp; }; + typedef struct hotinline_desc { + char *hid_symname; /* symbol name */ + uintptr_t hid_instr_offset; /* offset of call in text */ + struct hotinline_desc *hid_next; /* next hotinline */ + } hotinline_desc_t; + typedef unsigned short symid_t; /* symbol table index */ typedef unsigned char *reloc_dest_t; typedef void module_mach;
*** 97,106 **** --- 106,117 ---- size_t fbt_size; size_t fbt_nentries; caddr_t textwin; caddr_t textwin_base; + hotinline_desc_t *hi_calls; + sdt_probedesc_t *sdt_probes; size_t sdt_nprobes; char *sdt_tab; size_t sdt_size;
*** 185,194 **** --- 196,206 ---- extern void kobj_close_file(struct _buf *); extern int kobj_read_file(struct _buf *, char *, unsigned, unsigned); extern int kobj_get_filesize(struct _buf *, uint64_t *size); extern uintptr_t kobj_getelfsym(char *, void *, int *); extern void kobj_set_ctf(struct module *, caddr_t data, size_t size); + extern void do_hotinlines(struct module *); extern int kobj_filbuf(struct _buf *); extern void kobj_sync(void); #if defined(__i386) || defined(__sparc) || defined(__amd64) extern void kobj_vmem_init(vmem_t **, vmem_t **);