Artifact
bfc1375ea35ee9c4b255f290836205de84be91eb:
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 2c 20 32 30 30 35 1995-1999, 2005
0050: 20 42 72 75 6e 6f 20 48 61 69 62 6c 65 2c 20 3c Bruno Haible, <
0060: 62 72 75 6e 6f 40 63 6c 69 73 70 2e 6f 72 67 3e bruno@clisp.org>
0070: 0a 20 2a 0a 20 2a 20 54 68 69 73 20 69 73 20 66 . *. * This is f
0080: 72 65 65 20 73 6f 66 74 77 61 72 65 20 64 69 73 ree software dis
0090: 74 72 69 62 75 74 65 64 20 75 6e 64 65 72 20 74 tributed under t
00a0: 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 he GNU General P
00b0: 75 62 6c 69 63 20 4c 69 63 65 6e 63 65 0a 20 2a ublic Licence. *
00c0: 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 described in th
00d0: 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 e file COPYING.
00e0: 43 6f 6e 74 61 63 74 20 74 68 65 20 61 75 74 68 Contact the auth
00f0: 6f 72 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 or if you don't
0100: 68 61 76 65 20 74 68 69 73 0a 20 2a 20 6f 72 20 have this. * or
0110: 63 61 6e 27 74 20 6c 69 76 65 20 77 69 74 68 20 can't live with
0120: 69 74 2e 20 54 68 65 72 65 20 69 73 20 41 42 53 it. There is ABS
0130: 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 OLUTELY NO WARRA
0140: 4e 54 59 2c 20 65 78 70 6c 69 63 69 74 20 6f 72 NTY, explicit or
0150: 20 69 6d 70 6c 69 65 64 2c 0a 20 2a 20 6f 6e 20 implied,. * on
0160: 74 68 69 73 20 73 6f 66 74 77 61 72 65 2e 0a 20 this software..
0170: 2a 2f 0a 0a 23 69 66 20 21 64 65 66 69 6e 65 64 */..#if !defined
0180: 28 4c 49 42 46 46 43 41 4c 4c 5f 56 45 52 53 49 (LIBFFCALL_VERSI
0190: 4f 4e 29 0a 23 20 64 65 66 69 6e 65 20 4c 49 42 ON).# define LIB
01a0: 46 46 43 41 4c 4c 5f 56 45 52 53 49 4f 4e 20 40 FFCALL_VERSION @
01b0: 4c 49 42 46 46 43 41 4c 4c 5f 56 45 52 53 49 4f LIBFFCALL_VERSIO
01c0: 4e 40 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 54 68 N@.#endif../* Th
01d0: 65 73 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 ese definitions
01e0: 61 72 65 20 61 64 6a 75 73 74 65 64 20 62 79 20 are adjusted by
01f0: 60 63 6f 6e 66 69 67 75 72 65 27 20 61 75 74 6f `configure' auto
0200: 6d 61 74 69 63 61 6c 6c 79 2e 20 2a 2f 0a 0a 2f matically. */../
0210: 2a 20 43 50 55 20 2a 2f 0a 23 69 66 6e 64 65 66 * CPU */.#ifndef
0220: 20 5f 5f 69 33 38 36 5f 5f 0a 23 75 6e 64 65 66 __i386__.#undef
0230: 20 5f 5f 69 33 38 36 5f 5f 0a 23 65 6e 64 69 66 __i386__.#endif
0240: 0a 23 69 66 6e 64 65 66 20 5f 5f 6d 36 38 6b 5f .#ifndef __m68k_
0250: 5f 0a 23 75 6e 64 65 66 20 5f 5f 6d 36 38 6b 5f _.#undef __m68k_
0260: 5f 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 65 66 _.#endif.#ifndef
0270: 20 5f 5f 6d 69 70 73 5f 5f 0a 23 75 6e 64 65 66 __mips__.#undef
0280: 20 5f 5f 6d 69 70 73 5f 5f 0a 23 65 6e 64 69 66 __mips__.#endif
0290: 0a 23 69 66 6e 64 65 66 20 5f 5f 6d 69 70 73 6e .#ifndef __mipsn
02a0: 33 32 5f 5f 0a 23 75 6e 64 65 66 20 5f 5f 6d 69 32__.#undef __mi
02b0: 70 73 6e 33 32 5f 5f 0a 23 65 6e 64 69 66 0a 23 psn32__.#endif.#
02c0: 69 66 6e 64 65 66 20 5f 5f 6d 69 70 73 36 34 5f ifndef __mips64_
02d0: 5f 0a 23 75 6e 64 65 66 20 5f 5f 6d 69 70 73 36 _.#undef __mips6
02e0: 34 5f 5f 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 4__.#endif.#ifnd
02f0: 65 66 20 5f 5f 73 70 61 72 63 5f 5f 0a 23 75 6e ef __sparc__.#un
0300: 64 65 66 20 5f 5f 73 70 61 72 63 5f 5f 0a 23 65 def __sparc__.#e
0310: 6e 64 69 66 0a 23 69 66 6e 64 65 66 20 5f 5f 73 ndif.#ifndef __s
0320: 70 61 72 63 36 34 5f 5f 0a 23 75 6e 64 65 66 20 parc64__.#undef
0330: 5f 5f 73 70 61 72 63 36 34 5f 5f 0a 23 65 6e 64 __sparc64__.#end
0340: 69 66 0a 23 69 66 6e 64 65 66 20 5f 5f 61 6c 70 if.#ifndef __alp
0350: 68 61 5f 5f 0a 23 75 6e 64 65 66 20 5f 5f 61 6c ha__.#undef __al
0360: 70 68 61 5f 5f 0a 23 65 6e 64 69 66 0a 23 69 66 pha__.#endif.#if
0370: 6e 64 65 66 20 5f 5f 68 70 70 61 5f 5f 0a 23 75 ndef __hppa__.#u
0380: 6e 64 65 66 20 5f 5f 68 70 70 61 5f 5f 0a 23 65 ndef __hppa__.#e
0390: 6e 64 69 66 0a 23 69 66 6e 64 65 66 20 5f 5f 61 ndif.#ifndef __a
03a0: 72 6d 5f 5f 0a 23 75 6e 64 65 66 20 5f 5f 61 72 rm__.#undef __ar
03b0: 6d 5f 5f 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 m__.#endif.#ifnd
03c0: 65 66 20 5f 5f 70 6f 77 65 72 70 63 5f 5f 0a 23 ef __powerpc__.#
03d0: 75 6e 64 65 66 20 5f 5f 70 6f 77 65 72 70 63 5f undef __powerpc_
03e0: 5f 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 65 66 _.#endif.#ifndef
03f0: 20 5f 5f 70 6f 77 65 72 70 63 36 34 5f 5f 0a 23 __powerpc64__.#
0400: 75 6e 64 65 66 20 5f 5f 70 6f 77 65 72 70 63 36 undef __powerpc6
0410: 34 5f 5f 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 4__.#endif.#ifnd
0420: 65 66 20 5f 5f 73 33 39 30 5f 5f 0a 23 75 6e 64 ef __s390__.#und
0430: 65 66 20 5f 5f 73 33 39 30 5f 5f 0a 23 65 6e 64 ef __s390__.#end
0440: 69 66 0a 23 69 66 6e 64 65 66 20 5f 5f 6d 38 38 if.#ifndef __m88
0450: 6b 5f 5f 0a 23 75 6e 64 65 66 20 5f 5f 6d 38 38 k__.#undef __m88
0460: 6b 5f 5f 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 k__.#endif.#ifnd
0470: 65 66 20 5f 5f 63 6f 6e 76 65 78 5f 5f 0a 23 75 ef __convex__.#u
0480: 6e 64 65 66 20 5f 5f 63 6f 6e 76 65 78 5f 5f 0a ndef __convex__.
0490: 23 65 6e 64 69 66 0a 23 69 66 6e 64 65 66 20 5f #endif.#ifndef _
04a0: 5f 69 61 36 34 5f 5f 0a 23 75 6e 64 65 66 20 5f _ia64__.#undef _
04b0: 5f 69 61 36 34 5f 5f 0a 23 65 6e 64 69 66 0a 23 _ia64__.#endif.#
04c0: 69 66 6e 64 65 66 20 5f 5f 78 38 36 5f 36 34 5f ifndef __x86_64_
04d0: 5f 0a 23 75 6e 64 65 66 20 5f 5f 78 38 36 5f 36 _.#undef __x86_6
04e0: 34 5f 5f 0a 23 65 6e 64 69 66 0a 0a 23 69 66 64 4__.#endif..#ifd
04f0: 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0a 74 ef __cplusplus.t
0500: 79 70 65 64 65 66 20 69 6e 74 20 28 2a 5f 5f 54 ypedef int (*__T
0510: 52 5f 66 75 6e 63 74 69 6f 6e 29 20 28 2e 2e 2e R_function) (...
0520: 29 3b 0a 23 65 6c 73 65 0a 74 79 70 65 64 65 66 );.#else.typedef
0530: 20 69 6e 74 20 28 2a 5f 5f 54 52 5f 66 75 6e 63 int (*__TR_func
0540: 74 69 6f 6e 29 20 28 29 3b 0a 23 65 6e 64 69 66 tion) ();.#endif
0550: 0a 65 78 74 65 72 6e 20 5f 5f 54 52 5f 66 75 6e .extern __TR_fun
0560: 63 74 69 6f 6e 20 61 6c 6c 6f 63 5f 74 72 61 6d ction alloc_tram
0570: 70 6f 6c 69 6e 65 5f 72 20 28 5f 5f 54 52 5f 66 poline_r (__TR_f
0580: 75 6e 63 74 69 6f 6e 2c 20 76 6f 69 64 2a 2c 20 unction, void*,
0590: 76 6f 69 64 2a 29 3b 0a 65 78 74 65 72 6e 20 76 void*);.extern v
05a0: 6f 69 64 20 66 72 65 65 5f 74 72 61 6d 70 6f 6c oid free_trampol
05b0: 69 6e 65 5f 72 20 28 5f 5f 54 52 5f 66 75 6e 63 ine_r (__TR_func
05c0: 74 69 6f 6e 29 3b 0a 65 78 74 65 72 6e 20 69 6e tion);.extern in
05d0: 74 20 69 73 5f 74 72 61 6d 70 6f 6c 69 6e 65 5f t is_trampoline_
05e0: 72 20 28 76 6f 69 64 2a 29 3b 0a 65 78 74 65 72 r (void*);.exter
05f0: 6e 20 5f 5f 54 52 5f 66 75 6e 63 74 69 6f 6e 20 n __TR_function
0600: 74 72 61 6d 70 6f 6c 69 6e 65 5f 72 5f 61 64 64 trampoline_r_add
0610: 72 65 73 73 20 28 76 6f 69 64 2a 29 3b 0a 65 78 ress (void*);.ex
0620: 74 65 72 6e 20 76 6f 69 64 2a 20 74 72 61 6d 70 tern void* tramp
0630: 6f 6c 69 6e 65 5f 72 5f 64 61 74 61 30 20 28 76 oline_r_data0 (v
0640: 6f 69 64 2a 29 3b 0a 65 78 74 65 72 6e 20 76 6f oid*);.extern vo
0650: 69 64 2a 20 74 72 61 6d 70 6f 6c 69 6e 65 5f 72 id* trampoline_r
0660: 5f 64 61 74 61 31 20 28 76 6f 69 64 2a 29 3b 0a _data1 (void*);.
0670: 0a 23 65 6e 64 69 66 20 2f 2a 20 5f 54 52 41 4d .#endif /* _TRAM
0680: 50 4f 4c 49 4e 45 5f 52 5f 48 20 2a 2f 0a POLINE_R_H */.