stacktrace.cc (12644:ee5e0c83e7fb) | stacktrace.cc (13893:0e863b6c441a) |
---|---|
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; --- 40 unchanged lines hidden (view full) --- 49 : tc(_tc) 50{ 51 Addr addr = 0; 52 FSTranslatingPortProxy &vp = tc->getVirtProxy(); 53 SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab; 54 55 if (!symtab->findAddress("thread_info_size", addr)) 56 panic("thread info not compiled into kernel\n"); | 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; --- 40 unchanged lines hidden (view full) --- 49 : tc(_tc) 50{ 51 Addr addr = 0; 52 FSTranslatingPortProxy &vp = tc->getVirtProxy(); 53 SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab; 54 55 if (!symtab->findAddress("thread_info_size", addr)) 56 panic("thread info not compiled into kernel\n"); |
57 thread_info_size = vp.readGtoH<int32_t>(addr); | 57 thread_info_size = vp.read<int32_t>(addr, GuestByteOrder); |
58 59 if (!symtab->findAddress("task_struct_size", addr)) 60 panic("thread info not compiled into kernel\n"); | 58 59 if (!symtab->findAddress("task_struct_size", addr)) 60 panic("thread info not compiled into kernel\n"); |
61 task_struct_size = vp.readGtoH<int32_t>(addr); | 61 task_struct_size = vp.read<int32_t>(addr, GuestByteOrder); |
62 63 if (!symtab->findAddress("thread_info_task", addr)) 64 panic("thread info not compiled into kernel\n"); | 62 63 if (!symtab->findAddress("thread_info_task", addr)) 64 panic("thread info not compiled into kernel\n"); |
65 task_off = vp.readGtoH<int32_t>(addr); | 65 task_off = vp.read<int32_t>(addr, GuestByteOrder); |
66 67 if (!symtab->findAddress("task_struct_pid", addr)) 68 panic("thread info not compiled into kernel\n"); | 66 67 if (!symtab->findAddress("task_struct_pid", addr)) 68 panic("thread info not compiled into kernel\n"); |
69 pid_off = vp.readGtoH<int32_t>(addr); | 69 pid_off = vp.read<int32_t>(addr, GuestByteOrder); |
70 71 if (!symtab->findAddress("task_struct_comm", addr)) 72 panic("thread info not compiled into kernel\n"); | 70 71 if (!symtab->findAddress("task_struct_comm", addr)) 72 panic("thread info not compiled into kernel\n"); |
73 name_off = vp.readGtoH<int32_t>(addr); | 73 name_off = vp.read<int32_t>(addr, GuestByteOrder); |
74} 75 76Addr 77ProcessInfo::task(Addr ksp) const 78{ 79 Addr base = ksp & ~0x3fff; 80 if (base == ULL(0xfffffc0000000000)) 81 return 0; 82 83 Addr tsk; 84 85 FSTranslatingPortProxy &vp = tc->getVirtProxy(); | 74} 75 76Addr 77ProcessInfo::task(Addr ksp) const 78{ 79 Addr base = ksp & ~0x3fff; 80 if (base == ULL(0xfffffc0000000000)) 81 return 0; 82 83 Addr tsk; 84 85 FSTranslatingPortProxy &vp = tc->getVirtProxy(); |
86 tsk = vp.readGtoH<Addr>(base + task_off); | 86 tsk = vp.read<Addr>(base + task_off, GuestByteOrder); |
87 88 return tsk; 89} 90 91int 92ProcessInfo::pid(Addr ksp) const 93{ 94 Addr task = this->task(ksp); 95 if (!task) 96 return -1; 97 98 uint16_t pd; 99 100 FSTranslatingPortProxy &vp = tc->getVirtProxy(); | 87 88 return tsk; 89} 90 91int 92ProcessInfo::pid(Addr ksp) const 93{ 94 Addr task = this->task(ksp); 95 if (!task) 96 return -1; 97 98 uint16_t pd; 99 100 FSTranslatingPortProxy &vp = tc->getVirtProxy(); |
101 pd = vp.readGtoH<uint16_t>(task + pid_off); | 101 pd = vp.read<uint16_t>(task + pid_off, GuestByteOrder); |
102 103 return pd; 104} 105 106string 107ProcessInfo::name(Addr ksp) const 108{ 109 Addr task = this->task(ksp); --- 255 unchanged lines hidden --- | 102 103 return pd; 104} 105 106string 107ProcessInfo::name(Addr ksp) const 108{ 109 Addr task = this->task(ksp); --- 255 unchanged lines hidden --- |