stacktrace.cc (5087:b332ea3bc5e6) | stacktrace.cc (5499:8bfc7650c344) |
---|---|
1/* 2 * Copyright (c) 2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 56 unchanged lines hidden (view full) --- 65 66 if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_pid", addr)) 67 panic("thread info not compiled into kernel\n"); 68 pid_off = vp->readGtoH<int32_t>(addr); 69 70 if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_comm", addr)) 71 panic("thread info not compiled into kernel\n"); 72 name_off = vp->readGtoH<int32_t>(addr); | 1/* 2 * Copyright (c) 2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 56 unchanged lines hidden (view full) --- 65 66 if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_pid", addr)) 67 panic("thread info not compiled into kernel\n"); 68 pid_off = vp->readGtoH<int32_t>(addr); 69 70 if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_comm", addr)) 71 panic("thread info not compiled into kernel\n"); 72 name_off = vp->readGtoH<int32_t>(addr); |
73 74 tc->delVirtPort(vp); | |
75 } 76 77 Addr 78 ProcessInfo::task(Addr ksp) const 79 { 80 Addr base = ksp & ~0x3fff; 81 if (base == ULL(0xfffffc0000000000)) 82 return 0; 83 84 Addr tsk; 85 86 VirtualPort *vp; 87 88 vp = tc->getVirtPort(); 89 tsk = vp->readGtoH<Addr>(base + task_off); | 73 } 74 75 Addr 76 ProcessInfo::task(Addr ksp) const 77 { 78 Addr base = ksp & ~0x3fff; 79 if (base == ULL(0xfffffc0000000000)) 80 return 0; 81 82 Addr tsk; 83 84 VirtualPort *vp; 85 86 vp = tc->getVirtPort(); 87 tsk = vp->readGtoH<Addr>(base + task_off); |
90 tc->delVirtPort(vp); | |
91 92 return tsk; 93 } 94 95 int 96 ProcessInfo::pid(Addr ksp) const 97 { 98 Addr task = this->task(ksp); 99 if (!task) 100 return -1; 101 102 uint16_t pd; 103 104 VirtualPort *vp; 105 106 vp = tc->getVirtPort(); 107 pd = vp->readGtoH<uint16_t>(task + pid_off); | 88 89 return tsk; 90 } 91 92 int 93 ProcessInfo::pid(Addr ksp) const 94 { 95 Addr task = this->task(ksp); 96 if (!task) 97 return -1; 98 99 uint16_t pd; 100 101 VirtualPort *vp; 102 103 vp = tc->getVirtPort(); 104 pd = vp->readGtoH<uint16_t>(task + pid_off); |
108 tc->delVirtPort(vp); | |
109 110 return pd; 111 } 112 113 string 114 ProcessInfo::name(Addr ksp) const 115 { 116 Addr task = this->task(ksp); --- 114 unchanged lines hidden --- | 105 106 return pd; 107 } 108 109 string 110 ProcessInfo::name(Addr ksp) const 111 { 112 Addr task = this->task(ksp); --- 114 unchanged lines hidden --- |