Changeset 3fc03fd in mainline for generic


Ignore:
Timestamp:
2005-12-14T20:34:15Z (20 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
dc747e3
Parents:
d91e54b
Message:

Better gcc CALLER implementation

Location:
generic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • generic/include/debug.h

    rd91e54b r3fc03fd  
    3434#include <arch.h>
    3535
    36 #ifndef CALLER
    37 /**  Default (returns 0) macro for getting address of calling function
    38  *   @param x First argument of the called function
    39  */
    40 #  define CALLER(x)       ((__address *) 0)
    41 #endif
     36#define CALLER       ((__address *)__builtin_return_address(0))
    4237
    4338#ifndef HERE
  • generic/src/synch/spinlock.c

    rd91e54b r3fc03fd  
    6464{
    6565        count_t i = 0;
    66         __address caller = CALLER(sl);
    6766        char *symbol;
    6867        bool deadlock_reported = false;
     
    7271                if (i++ > 300000) {
    7372                        printf("cpu%d: looping on spinlock %p:%s, caller=%p",
    74                                CPU->id, sl, sl->name, caller);
    75                         symbol = get_symtab_entry(caller);
     73                               CPU->id, sl, sl->name, CALLER);
     74                        symbol = get_symtab_entry(CALLER);
    7675                        if (symbol)
    7776                                printf("(%s)", symbol);
Note: See TracChangeset for help on using the changeset viewer.