system.hh (2986:99640058db70) system.hh (2989:9a6f66c38acc)
1/*
2 * Copyright (c) 2002-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;

--- 127 unchanged lines hidden (view full) ---

136 */
137 virtual Addr fixFuncEventAddr(Addr addr) = 0;
138
139 /**
140 * Add a function-based event to the given function, to be looked
141 * up in the specified symbol table.
142 */
143 template <class T>
1/*
2 * Copyright (c) 2002-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;

--- 127 unchanged lines hidden (view full) ---

136 */
137 virtual Addr fixFuncEventAddr(Addr addr) = 0;
138
139 /**
140 * Add a function-based event to the given function, to be looked
141 * up in the specified symbol table.
142 */
143 template <class T>
144 T *System::addFuncEvent(SymbolTable *symtab, const char *lbl)
144 T *addFuncEvent(SymbolTable *symtab, const char *lbl)
145 {
146 Addr addr = 0; // initialize only to avoid compiler warning
147
148 if (symtab->findAddress(lbl, addr)) {
149 T *ev = new T(&pcEventQueue, lbl, fixFuncEventAddr(addr));
150 return ev;
151 }
152
153 return NULL;
154 }
155
156 /** Add a function-based event to kernel code. */
157 template <class T>
145 {
146 Addr addr = 0; // initialize only to avoid compiler warning
147
148 if (symtab->findAddress(lbl, addr)) {
149 T *ev = new T(&pcEventQueue, lbl, fixFuncEventAddr(addr));
150 return ev;
151 }
152
153 return NULL;
154 }
155
156 /** Add a function-based event to kernel code. */
157 template <class T>
158 T *System::addKernelFuncEvent(const char *lbl)
158 T *addKernelFuncEvent(const char *lbl)
159 {
160 return addFuncEvent<T>(kernelSymtab, lbl);
161 }
162
163#endif
164 public:
165#if FULL_SYSTEM
166 std::vector<RemoteGDB *> remoteGDB;

--- 81 unchanged lines hidden ---
159 {
160 return addFuncEvent<T>(kernelSymtab, lbl);
161 }
162
163#endif
164 public:
165#if FULL_SYSTEM
166 std::vector<RemoteGDB *> remoteGDB;

--- 81 unchanged lines hidden ---