Artifact
a30bce67a22336e1b784448339773d9b3c46ff54:
0000: 23 69 66 6e 64 65 66 20 5f 54 52 41 4d 50 4f 4c #ifndef _TRAMPOL
0010: 49 4e 45 5f 52 5f 48 0a 23 64 65 66 69 6e 65 20 INE_R_H.#define
0020: 5f 54 52 41 4d 50 4f 4c 49 4e 45 5f 52 5f 48 0a _TRAMPOLINE_R_H.
0030: 0a 2f 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 ./*. * Copyright
0040: 20 31 39 39 35 2d 31 39 39 39 20 42 72 75 6e 6f 1995-1999 Bruno
0050: 20 48 61 69 62 6c 65 2c 20 3c 62 72 75 6e 6f 40 Haible, <bruno@
0060: 63 6c 69 73 70 2e 6f 72 67 3e 0a 20 2a 0a 20 2a clisp.org>. *. *
0070: 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73 6f This is free so
0080: 66 74 77 61 72 65 20 64 69 73 74 72 69 62 75 74 ftware distribut
0090: 65 64 20 75 6e 64 65 72 20 74 68 65 20 47 4e 55 ed under the GNU
00a0: 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 General Public
00b0: 4c 69 63 65 6e 63 65 0a 20 2a 20 64 65 73 63 72 Licence. * descr
00c0: 69 62 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65 ibed in the file
00d0: 20 43 4f 50 59 49 4e 47 2e 20 43 6f 6e 74 61 63 COPYING. Contac
00e0: 74 20 74 68 65 20 61 75 74 68 6f 72 20 69 66 20 t the author if
00f0: 79 6f 75 20 64 6f 6e 27 74 20 68 61 76 65 20 74 you don't have t
0100: 68 69 73 0a 20 2a 20 6f 72 20 63 61 6e 27 74 20 his. * or can't
0110: 6c 69 76 65 20 77 69 74 68 20 69 74 2e 20 54 68 live with it. Th
0120: 65 72 65 20 69 73 20 41 42 53 4f 4c 55 54 45 4c ere is ABSOLUTEL
0130: 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 2c 20 65 Y NO WARRANTY, e
0140: 78 70 6c 69 63 69 74 20 6f 72 20 69 6d 70 6c 69 xplicit or impli
0150: 65 64 2c 0a 20 2a 20 6f 6e 20 74 68 69 73 20 73 ed,. * on this s
0160: 6f 66 74 77 61 72 65 2e 0a 20 2a 2f 0a 0a 23 69 oftware.. */..#i
0170: 66 64 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75 73 fdef __cplusplus
0180: 0a 74 79 70 65 64 65 66 20 69 6e 74 20 28 2a 5f .typedef int (*_
0190: 5f 54 52 5f 66 75 6e 63 74 69 6f 6e 29 20 28 2e _TR_function) (.
01a0: 2e 2e 29 3b 0a 23 65 6c 73 65 0a 74 79 70 65 64 ..);.#else.typed
01b0: 65 66 20 69 6e 74 20 28 2a 5f 5f 54 52 5f 66 75 ef int (*__TR_fu
01c0: 6e 63 74 69 6f 6e 29 20 28 29 3b 0a 23 65 6e 64 nction) ();.#end
01d0: 69 66 0a 23 69 66 20 64 65 66 69 6e 65 64 28 5f if.#if defined(_
01e0: 5f 53 54 44 43 5f 5f 29 20 7c 7c 20 64 65 66 69 _STDC__) || defi
01f0: 6e 65 64 28 5f 5f 47 4e 55 43 5f 5f 29 20 7c 7c ned(__GNUC__) ||
0200: 20 64 65 66 69 6e 65 64 28 5f 5f 63 70 6c 75 73 defined(__cplus
0210: 70 6c 75 73 29 0a 65 78 74 65 72 6e 20 5f 5f 54 plus).extern __T
0220: 52 5f 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 R_function alloc
0230: 5f 74 72 61 6d 70 6f 6c 69 6e 65 5f 72 20 28 5f _trampoline_r (_
0240: 5f 54 52 5f 66 75 6e 63 74 69 6f 6e 2c 20 76 6f _TR_function, vo
0250: 69 64 2a 2c 20 76 6f 69 64 2a 29 3b 0a 65 78 74 id*, void*);.ext
0260: 65 72 6e 20 76 6f 69 64 20 66 72 65 65 5f 74 72 ern void free_tr
0270: 61 6d 70 6f 6c 69 6e 65 5f 72 20 28 5f 5f 54 52 ampoline_r (__TR
0280: 5f 66 75 6e 63 74 69 6f 6e 29 3b 0a 65 78 74 65 _function);.exte
0290: 72 6e 20 69 6e 74 20 69 73 5f 74 72 61 6d 70 6f rn int is_trampo
02a0: 6c 69 6e 65 5f 72 20 28 76 6f 69 64 2a 29 3b 0a line_r (void*);.
02b0: 65 78 74 65 72 6e 20 5f 5f 54 52 5f 66 75 6e 63 extern __TR_func
02c0: 74 69 6f 6e 20 74 72 61 6d 70 6f 6c 69 6e 65 5f tion trampoline_
02d0: 72 5f 61 64 64 72 65 73 73 20 28 76 6f 69 64 2a r_address (void*
02e0: 29 3b 0a 65 78 74 65 72 6e 20 76 6f 69 64 2a 20 );.extern void*
02f0: 74 72 61 6d 70 6f 6c 69 6e 65 5f 72 5f 64 61 74 trampoline_r_dat
0300: 61 30 20 28 76 6f 69 64 2a 29 3b 0a 65 78 74 65 a0 (void*);.exte
0310: 72 6e 20 76 6f 69 64 2a 20 74 72 61 6d 70 6f 6c rn void* trampol
0320: 69 6e 65 5f 72 5f 64 61 74 61 31 20 28 76 6f 69 ine_r_data1 (voi
0330: 64 2a 29 3b 0a 23 65 6c 73 65 0a 65 78 74 65 72 d*);.#else.exter
0340: 6e 20 5f 5f 54 52 5f 66 75 6e 63 74 69 6f 6e 20 n __TR_function
0350: 61 6c 6c 6f 63 5f 74 72 61 6d 70 6f 6c 69 6e 65 alloc_trampoline
0360: 5f 72 20 28 29 3b 0a 65 78 74 65 72 6e 20 76 6f _r ();.extern vo
0370: 69 64 20 66 72 65 65 5f 74 72 61 6d 70 6f 6c 69 id free_trampoli
0380: 6e 65 5f 72 20 28 29 3b 0a 65 78 74 65 72 6e 20 ne_r ();.extern
0390: 69 6e 74 20 69 73 5f 74 72 61 6d 70 6f 6c 69 6e int is_trampolin
03a0: 65 5f 72 20 28 29 3b 0a 65 78 74 65 72 6e 20 5f e_r ();.extern _
03b0: 5f 54 52 5f 66 75 6e 63 74 69 6f 6e 20 74 72 61 _TR_function tra
03c0: 6d 70 6f 6c 69 6e 65 5f 72 5f 61 64 64 72 65 73 mpoline_r_addres
03d0: 73 20 28 29 3b 0a 65 78 74 65 72 6e 20 76 6f 69 s ();.extern voi
03e0: 64 2a 20 74 72 61 6d 70 6f 6c 69 6e 65 5f 72 5f d* trampoline_r_
03f0: 64 61 74 61 30 20 28 29 3b 0a 65 78 74 65 72 6e data0 ();.extern
0400: 20 76 6f 69 64 2a 20 74 72 61 6d 70 6f 6c 69 6e void* trampolin
0410: 65 5f 72 5f 64 61 74 61 31 20 28 29 3b 0a 23 65 e_r_data1 ();.#e
0420: 6e 64 69 66 0a 0a 23 65 6e 64 69 66 20 2f 2a 20 ndif..#endif /*
0430: 5f 54 52 41 4d 50 4f 4c 49 4e 45 5f 52 5f 48 20 _TRAMPOLINE_R_H
0440: 2a 2f 0a */.