Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/kern Revert accidental commit of CTF work-in-progress ch...



details:   https://anonhg.NetBSD.org/src/rev/569660481721
branches:  trunk
changeset: 752597:569660481721
user:      darran <darran%NetBSD.org@localhost>
date:      Mon Mar 01 22:27:07 2010 +0000

description:
Revert accidental commit of CTF work-in-progress changes.

diffstat:

 sys/kern/kern_ksyms.c |  74 ++++++--------------------------------------------
 1 files changed, 10 insertions(+), 64 deletions(-)

diffs (184 lines):

diff -r 8f11fe24cac6 -r 569660481721 sys/kern/kern_ksyms.c
--- a/sys/kern/kern_ksyms.c     Mon Mar 01 22:20:15 2010 +0000
+++ b/sys/kern/kern_ksyms.c     Mon Mar 01 22:27:07 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_ksyms.c,v 1.54 2010/03/01 21:10:16 darran Exp $   */
+/*     $NetBSD: kern_ksyms.c,v 1.55 2010/03/01 22:27:07 darran Exp $   */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_ksyms.c,v 1.54 2010/03/01 21:10:16 darran Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_ksyms.c,v 1.55 2010/03/01 22:27:07 darran Exp $");
 
 #if defined(_KERNEL) && defined(_KERNEL_OPT)
 #include "opt_ddb.h"
@@ -124,7 +124,6 @@
 
 int ksyms_symsz;
 int ksyms_strsz;
-int ksyms_ctfsz = 0;
 TAILQ_HEAD(, ksyms_symtab) ksyms_symtabs =
     TAILQ_HEAD_INITIALIZER(ksyms_symtabs);
 static struct ksyms_symtab kernel_symtab;
@@ -265,7 +264,7 @@
 static void
 addsymtab(const char *name, void *symstart, size_t symsize,
          void *strstart, size_t strsize, struct ksyms_symtab *tab,
-         void *newstart, void *ctfstart, size_t ctfsize)
+         void *newstart)
 {
        Elf_Sym *sym, *nsym, ts;
        int i, j, n, nglob;
@@ -280,8 +279,6 @@
        tab->sd_maxsym = 0;
        tab->sd_usroffset = 0;
        tab->sd_gone = false;
-       tab->sd_ctfstart = ctfstart;
-       tab->sd_ctfsize = ctfsize;
 #ifdef KSYMS_DEBUG
        printf("newstart %p sym %p ksyms_symsz %d str %p strsz %d send %p\n",
            newstart, symstart, symsize, strstart, strsize,
@@ -356,8 +353,6 @@
        char *symstart = NULL, *strstart = NULL;
        size_t strsize = 0;
        Elf_Ehdr *ehdr;
-       char *ctfstart = NULL;
-       size_t ctfsize = 0;
 
        if (symsize <= 0) {
                printf("[ Kernel symbol table missing! ]\n");
@@ -402,26 +397,10 @@
                break;
        }
 
-       /* Find the CTF section */
-       shdr = (Elf_Shdr *)((uint8_t *)start + ehdr->e_shoff);
-       for (i = 1; i < ehdr->e_shnum; i++) {
-               if (shdr[i].sh_type != SHT_PROGBITS)
-                       continue;
-               if (strncmp(".SUNW_ctf", &strstart[shdr[i].sh_name] ,10) != 0)
-                       continue;
-               ctfstart = (uint8_t *)start + shdr[i].sh_offset;
-               ctfsize = shdr[i].sh_size;
-               ksyms_ctfsz = ctfsize;
-               printf("%s: found CTF at 0x%x, size 0x%x\n",
-                       __func__,
-                       (uint32_t)ctfstart, ctfsize);
-               break;
-       }
-
        if (!ksyms_verify(symstart, strstart))
                return;
        addsymtab("netbsd", symstart, symsize, strstart, strsize,
-           &kernel_symtab, start, ctfstart, ctfsize);
+           &kernel_symtab, start);
 
 #ifdef DEBUG
        aprint_normal("Loaded initial symtab at %p, strtab at %p, # entries %ld\n",
@@ -448,7 +427,7 @@
 
        ksyms_hdr_init(ehdr);
        addsymtab("netbsd", symstart, symsize, strstart, strsize,
-           &kernel_symtab, symstart, NULL, 0);
+           &kernel_symtab, symstart);
 }
 
 /*
@@ -569,8 +548,7 @@
 
        st = kmem_zalloc(sizeof(*st), KM_SLEEP);
        mutex_enter(&ksyms_lock);
-       addsymtab(name, symstart, symsize, strstart, strsize, st, symstart, 
-               NULL, 0);
+       addsymtab(name, symstart, symsize, strstart, strsize, st, symstart);
        mutex_exit(&ksyms_lock);
 }
 
@@ -738,20 +716,12 @@
 
        /* Fifth section, ".bss". All symbols reside here. */
        ksyms_hdr.kh_shdr[SHBSS].sh_name = 27; /* This section name offset */
-       ksyms_hdr.kh_shdr[SHBSS].sh_type = SHT_SYMTAB;
+       ksyms_hdr.kh_shdr[SHBSS].sh_type = SHT_NOBITS;
        ksyms_hdr.kh_shdr[SHBSS].sh_offset = 0;
        ksyms_hdr.kh_shdr[SHBSS].sh_size = (unsigned long)-1L;
        ksyms_hdr.kh_shdr[SHBSS].sh_addralign = PAGE_SIZE;
        ksyms_hdr.kh_shdr[SHBSS].sh_flags = SHF_ALLOC | SHF_EXECINSTR;
 
-       /* Sixth section, ".SUNW_ctf". CTF section for DTrace */
-       ksyms_hdr.kh_shdr[SHCTF].sh_name = 32; /* This section name offset */
-       ksyms_hdr.kh_shdr[SHCTF].sh_type = SHT_NOBITS;
-/*     ksyms_hdr.kh_shdr[SHCTF].sh_offset = filled at open; */
-/*     ksyms_hdr.kh_shdr[SHCTF].sh_size = filled at open; */
-       ksyms_hdr.kh_shdr[SHCTF].sh_addralign = PAGE_SIZE;
-       ksyms_hdr.kh_shdr[SHCTF].sh_flags = 0;
-
        /* Set section names */
        strlcpy(&ksyms_hdr.kh_strtab[1], ".symtab",
            sizeof(ksyms_hdr.kh_strtab) - 1);
@@ -761,8 +731,6 @@
            sizeof(ksyms_hdr.kh_strtab) - 17);
        strlcpy(&ksyms_hdr.kh_strtab[27], ".bss",
            sizeof(ksyms_hdr.kh_strtab) - 27);
-       strlcpy(&ksyms_hdr.kh_strtab[32], ".SUNW_ctf",
-           sizeof(ksyms_hdr.kh_strtab) - 32);
 }
 
 static int
@@ -779,11 +747,8 @@
        mutex_enter(&ksyms_lock);
        ksyms_hdr.kh_shdr[SYMTAB].sh_size = ksyms_symsz;
        ksyms_hdr.kh_shdr[SYMTAB].sh_info = ksyms_symsz / sizeof(Elf_Sym);
-       ksyms_hdr.kh_shdr[SHCTF].sh_size = ksyms_ctfsz;
-       ksyms_hdr.kh_shdr[SHCTF].sh_offset = ksyms_symsz +
+       ksyms_hdr.kh_shdr[STRTAB].sh_offset = ksyms_symsz +
            ksyms_hdr.kh_shdr[SYMTAB].sh_offset;
-       ksyms_hdr.kh_shdr[STRTAB].sh_offset = 
-           ksyms_hdr.kh_shdr[SHCTF].sh_offset + ksyms_ctfsz;
        ksyms_hdr.kh_shdr[STRTAB].sh_size = ksyms_strsz;
        ksyms_isopen = true;
        mutex_exit(&ksyms_lock);
@@ -819,7 +784,7 @@
 static int
 ksymsread(dev_t dev, struct uio *uio, int ioflag)
 {
-       struct ksyms_symtab *st, *cst;
+       struct ksyms_symtab *st;
        size_t filepos, inpos, off;
        int error;
 
@@ -853,29 +818,10 @@
        }
 
        /*
-        * Copy out the CTF table.
-        */
-       cst = TAILQ_FIRST(&ksyms_symtabs);
-       printf("%s: ctf start 0x%x size 0x%x\n",
-               __func__,
-               (uint32_t)cst->sd_ctfstart, cst->sd_ctfsize);
-       if (uio->uio_resid == 0)
-               return 0;
-       if (uio->uio_offset <= cst->sd_symsize + filepos) {
-               inpos = uio->uio_offset - filepos;
-               error = uiomove((char *)cst->sd_ctfstart + inpos,
-                  cst->sd_ctfsize - inpos, uio);
-               if (error != 0)
-                       return error;
-       }
-       filepos += cst->sd_ctfsize;
-
-       /*
         * Copy out the string table
         */
        KASSERT(filepos == sizeof(struct ksyms_hdr) +
-           ksyms_hdr.kh_shdr[SYMTAB].sh_size +
-           ksyms_hdr.kh_shdr[SHCTF].sh_size);
+           ksyms_hdr.kh_shdr[SYMTAB].sh_size);
        TAILQ_FOREACH(st, &ksyms_symtabs, sd_queue) {
                if (uio->uio_resid == 0)
                        return 0;



Home | Main Index | Thread Index | Old Index