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 */.