Subversion Repositories HelenOS-historic

Rev

Rev 871 | Rev 1124 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 871 Rev 1078
Line 29... Line 29...
29
#ifndef __ia64_FADDR_H__
29
#ifndef __ia64_FADDR_H__
30
#define __ia64_FADDR_H__
30
#define __ia64_FADDR_H__
31
 
31
 
32
#include <arch/types.h>
32
#include <arch/types.h>
33
 
33
 
34
static __address FADDR(void (* fptr)(void));
-
 
35
 
-
 
36
/**
34
/**
37
 *
35
 *
38
 * Calculate absolute address of function
36
 * Calculate absolute address of function
39
 * referenced by fptr pointer.
37
 * referenced by fptr pointer.
40
 *
38
 *
41
 * @param fptr Function pointer.
39
 * @param fptr Function pointer.
42
 *
40
 *
43
 */
41
 */
44
inline __address FADDR(void (* fptr)(void)) {
42
static inline __address FADDR(void (* fptr)()) {
45
    __address faddr;
43
    __address faddr;
46
 
44
 
47
    /*Deprecated assembler version*/
-
 
48
    /* 
-
 
49
    __asm__(
-
 
50
        "ld8 %0 = [%1]\n\t"
-
 
51
        : "=r" (faddr)
-
 
52
        : "r" (fptr)
-
 
53
    );
-
 
54
    */
-
 
55
 
-
 
56
    faddr = *((__address *)(fptr));;
45
    faddr = *((__address *)(fptr));;
57
    return faddr;
46
    return faddr;
58
}
47
}
59
 
48
 
60
#endif
49
#endif