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