system.hh (9855:a317086a3e19) system.hh (10037:5cac77888310)
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

232 /** Mask that should be anded for binary/symbol loading.
233 * This allows one two different OS requirements for the same ISA to be
234 * handled. Some OSes are compiled for a virtual address and need to be
235 * loaded into physical memory that starts at address 0, while other
236 * bare metal tools generate images that start at address 0.
237 */
238 Addr loadAddrMask;
239
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

232 /** Mask that should be anded for binary/symbol loading.
233 * This allows one two different OS requirements for the same ISA to be
234 * handled. Some OSes are compiled for a virtual address and need to be
235 * loaded into physical memory that starts at address 0, while other
236 * bare metal tools generate images that start at address 0.
237 */
238 Addr loadAddrMask;
239
240 /** Offset that should be used for binary/symbol loading.
241 * This further allows more flexibily than the loadAddrMask allows alone in
242 * loading kernels and similar. The loadAddrOffset is applied after the
243 * loadAddrMask.
244 */
245 Addr loadAddrOffset;
246
240 protected:
241 uint64_t nextPID;
242
243 public:
244 uint64_t allocatePID()
245 {
246 return nextPID++;
247 }

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

316 {
317 return ++workItemsBegin;
318 }
319
320 /**
321 * Called by pseudo_inst to track the number of work items completed by
322 * this system.
323 */
247 protected:
248 uint64_t nextPID;
249
250 public:
251 uint64_t allocatePID()
252 {
253 return nextPID++;
254 }

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

323 {
324 return ++workItemsBegin;
325 }
326
327 /**
328 * Called by pseudo_inst to track the number of work items completed by
329 * this system.
330 */
324 uint64_t
331 uint64_t
325 incWorkItemsEnd()
326 {
327 return ++workItemsEnd;
328 }
329
330 /**
331 * Called by pseudo_inst to mark the cpus actively executing work items.
332 * Returns the total number of cpus that have executed work item begin or
333 * ends.
334 */
332 incWorkItemsEnd()
333 {
334 return ++workItemsEnd;
335 }
336
337 /**
338 * Called by pseudo_inst to mark the cpus actively executing work items.
339 * Returns the total number of cpus that have executed work item begin or
340 * ends.
341 */
335 int
342 int
336 markWorkItem(int index)
337 {
338 int count = 0;
339 assert(index < activeCpus.size());
340 activeCpus[index] = true;
343 markWorkItem(int index)
344 {
345 int count = 0;
346 assert(index < activeCpus.size());
347 activeCpus[index] = true;
341 for (std::vector<bool>::iterator i = activeCpus.begin();
348 for (std::vector::iterator i = activeCpus.begin();
342 i < activeCpus.end(); i++) {
343 if (*i) count++;
344 }
345 return count;
346 }
347
348 inline void workItemBegin(uint32_t tid, uint32_t workid)
349 {

--- 194 unchanged lines hidden ---
349 i < activeCpus.end(); i++) {
350 if (*i) count++;
351 }
352 return count;
353 }
354
355 inline void workItemBegin(uint32_t tid, uint32_t workid)
356 {

--- 194 unchanged lines hidden ---