# PaCkAgE DaTaStReAm libffi 1 583 # end of header 07070100188e53000081a40000000000000000000000014dc9ebf100000112000000b600010002ffffffffffffffff0000000f00000000libffi/pkginfoPKG=libffi NAME=libffi 3.0.9 i86pc Solaris 11 VERSION=3.0.9 PSTAMP=11th May 2011 VENDOR=libffi Project EMAIL=http://sourceware.org/libffi/ DESC=Portable Foreign Function Interface Library ARCH=i386 CATEGORY=utility CLASSES=none BASEDIR=/ ISTATES=S s 1 2 3 RSTATES=S s 1 2 3 07070100188e52000081a40000000000000000000000014dc9ebf1000005d4000000b600010002ffffffffffffffff0000000e00000000libffi/pkgmap: 1 583 1 d none /usr ? ? ? 1 d none /usr/local ? ? ? 1 d none /usr/local/lib 0755 root root 1 d none /usr/local/lib/libffi-3.0.9 0755 root root 1 d none /usr/local/lib/libffi-3.0.9/include 0755 root root 1 f none /usr/local/lib/libffi-3.0.9/include/ffi.h 0644 root root 10886 3699 1305078643 1 f none /usr/local/lib/libffi-3.0.9/include/ffitarget.h 0644 root root 3496 60413 1305078643 1 f none /usr/local/lib/libffi.a 0644 root root 114084 15033 1305078643 1 f none /usr/local/lib/libffi.la 0755 root root 931 15847 1305078643 1 s none /usr/local/lib/libffi.so=libffi.so.5.0.10 1 s none /usr/local/lib/libffi.so.5=libffi.so.5.0.10 1 f none /usr/local/lib/libffi.so.5.0.10 0755 root root 91556 18956 1305078643 1 d none /usr/local/lib/pkgconfig 0755 root root 1 f none /usr/local/lib/pkgconfig/libffi.pc 0644 root root 245 22356 1305078644 1 d none /usr/local/share 0755 root root 1 d none /usr/local/share/info 0755 root root 1 f none /usr/local/share/info/dir 0644 root root 5318 5517 1305078644 1 f none /usr/local/share/info/libffi.info 0644 root root 18541 26468 1305078644 1 d none /usr/local/share/man 0755 root root 1 d none /usr/local/share/man/man3 0755 root root 1 f none /usr/local/share/man/man3/ffi.3 0644 root root 648 53376 1305078643 1 f none /usr/local/share/man/man3/ffi_call.3 0644 root root 2333 62695 1305078643 1 f none /usr/local/share/man/man3/ffi_prep_cif.3 0644 root root 1053 22406 1305078643 1 i checkinstall 790 2505 1305078851 1 i pkginfo 274 21358 1305078769 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!07070100188e53000081a40000000000000000000000014dc9ebf100000112000000b600010002ffffffffffffffff0000000800000000pkginfoPKG=libffi NAME=libffi 3.0.9 i86pc Solaris 11 VERSION=3.0.9 PSTAMP=11th May 2011 VENDOR=libffi Project EMAIL=http://sourceware.org/libffi/ DESC=Portable Foreign Function Interface Library ARCH=i386 CATEGORY=utility CLASSES=none BASEDIR=/ ISTATES=S s 1 2 3 RSTATES=S s 1 2 3 07070100188e52000081a40000000000000000000000014dc9ebf1000005d4000000b600010002ffffffffffffffff0000000700000000pkgmap: 1 583 1 d none /usr ? ? ? 1 d none /usr/local ? ? ? 1 d none /usr/local/lib 0755 root root 1 d none /usr/local/lib/libffi-3.0.9 0755 root root 1 d none /usr/local/lib/libffi-3.0.9/include 0755 root root 1 f none /usr/local/lib/libffi-3.0.9/include/ffi.h 0644 root root 10886 3699 1305078643 1 f none /usr/local/lib/libffi-3.0.9/include/ffitarget.h 0644 root root 3496 60413 1305078643 1 f none /usr/local/lib/libffi.a 0644 root root 114084 15033 1305078643 1 f none /usr/local/lib/libffi.la 0755 root root 931 15847 1305078643 1 s none /usr/local/lib/libffi.so=libffi.so.5.0.10 1 s none /usr/local/lib/libffi.so.5=libffi.so.5.0.10 1 f none /usr/local/lib/libffi.so.5.0.10 0755 root root 91556 18956 1305078643 1 d none /usr/local/lib/pkgconfig 0755 root root 1 f none /usr/local/lib/pkgconfig/libffi.pc 0644 root root 245 22356 1305078644 1 d none /usr/local/share 0755 root root 1 d none /usr/local/share/info 0755 root root 1 f none /usr/local/share/info/dir 0644 root root 5318 5517 1305078644 1 f none /usr/local/share/info/libffi.info 0644 root root 18541 26468 1305078644 1 d none /usr/local/share/man 0755 root root 1 d none /usr/local/share/man/man3 0755 root root 1 f none /usr/local/share/man/man3/ffi.3 0644 root root 648 53376 1305078643 1 f none /usr/local/share/man/man3/ffi_call.3 0644 root root 2333 62695 1305078643 1 f none /usr/local/share/man/man3/ffi_prep_cif.3 0644 root root 1053 22406 1305078643 1 i checkinstall 790 2505 1305078851 1 i pkginfo 274 21358 1305078769 07070100188e6a000041ed0000000000000000000000024dc9ebf100000000000000b600010002ffffffffffffffff0000000800000000install07070100188e6b000081ed0000000000000000000000014dc9ec4300000316000000b600010002ffffffffffffffff0000001500000000install/checkinstall#!/bin/sh # expected_bits="64" expected_release="5.11" expected_platform="i386" # release=`uname -r` platform=`uname -p` bits=`isainfo -b` # if [ ${platform} != ${expected_platform} ]; then echo "\n\n\n\tThis package must be installed on a ${expected_platform} architecture\n" echo "\tAborting installation.\n\n\n" exit 1 fi if [ ${release} != ${expected_release} ]; then echo "\n\n\n\tThis package must be installed on a ${expected_release} machine\n" echo "\tAborting installation.\n\n\n" exit 1 fi #if [ ${bits} != ${expected_bits} ]; then # echo "\n\n\n\tThis package must be installed on a ${expected_bits} bit machine\n" # echo "\tYour machine is running a ${bits} bit O.S. currently\n" # echo "\tAborting installation.\n\n\n" # exit 1 #fi exit 0 07070100188e54000041ed0000000000000000000000034dc9ebf100000000000000b600010002ffffffffffffffff0000000500000000root07070100188e55000041ed0000000000000000000000034dc9ebf100000000000000b600010002ffffffffffffffff0000000900000000root/usr07070100188e56000041ed0000000000000000000000044dc9ebf100000000000000b600010002ffffffffffffffff0000000f00000000root/usr/local07070100188e57000041ed0000000000000000000000044dc9ebf100000000000000b600010002ffffffffffffffff0000001300000000root/usr/local/lib07070100188e5f000041ed0000000000000000000000024dc9ebf100000000000000b600010002ffffffffffffffff0000001d00000000root/usr/local/lib/pkgconfig07070100188e60000081a40000000000000000000000014dc9eb74000000f5000000b600010002ffffffffffffffff0000002700000000root/usr/local/lib/pkgconfig/libffi.pcprefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${libdir}/libffi-3.0.9/include Name: libffi Description: Library supporting Foreign Function Interfaces Version: 3.0.9 Libs: -L${libdir} -lffi Cflags: -I${includedir} 07070100188e5e000081ed0000000000000000000000014dc9eb73000165a4000000b600010002ffffffffffffffff0000002400000000root/usr/local/lib/libffi.so.5.0.10ELF4_4 (%$ozz||$hPdd$$;T xCB !"#$&')+-/012346:<>?A  %(*,.5789;=@+3>0 S`[jv"> {"> u#> P#F #d $d $d % &8 )W @|O p*k + ,R , 4 &:# 0A H| QG ZIw  hPS' vX j  0c 0\ _F  w wh PxC xQ yK PyM yY z z8 .{8 E@{7 T{w i|< s{ 0C | X q  p   W  #*4 :8 H V k ~ |̆( p  ) 8= F S g}4 x 0} @J   } L  ' 5;CX f@ }  d j z\m P J J "@ 2 GMZ.libs/libffi.so.5.0.10crti.svalues-Xa.cdebug.cprep_cif.cinitialize_aggregatetypes.cjava_raw_api.cclosures.cfstatlstat_xmknodsegment_holdinghas_segment_linkinit_mparamschange_mparaminternal_malloc_statsmmap_allocdlmmapmmap_resizeinit_topinit_binsprepend_allocadd_segmentsys_allocrelease_unused_segmentsdlmunmapsys_trimtmalloc_largetmalloc_smallinternal_reallocdlfreedlmallocinternal_memaligniallocdlcallocdlreallocdlmemaligndlindependent_callocdlindependent_comallocdlvallocdlpvallocdlmalloc_trimdlmalloc_footprintdlmalloc_max_footprintdlmalloc_statsdlmalloc_usable_sizedlmalloptffi64.cffi.cffi_prep_incoming_args_SYSVffi_prep_args_rawcrtn.sffi_type_floatffi_type_uint64ffi_prep_cif__iobffi_type_doubleffi_type_pointerffi_assertffi_type_uint8_edataffi_type_sint16ffi_call_SYSVffi_type_voidffi_prep_closure_locffi_type_longdoublememsetpthread_mutex_lock_fxstat_xstatffi_java_raw_to_ptrarray_GLOBAL_OFFSET_TABLE_.XAKk4DpzteyNlXN._gm_pthread_mutex_initffi_type_uint16ffi_java_ptrarray_to_rawffi_type_sint8_endffi_callffi_raw_sizeffi_ptrarray_to_rawffi_closure_free_DYNAMIC_PROCEDURE_LINKAGE_TABLE_ffi_closure_allocffi_prep_closureffi_raw_to_ptrarrayffi_prep_args_lxstatffi_type_sint32ffi_raw_call.XAKk4DpzteyNlXN.magic_init_mutexffi_type_testabortsysconfpthread_mutex_unlockffi_stop_hereffi_closure_SYSV_innerffi_java_raw_sizeffi_type_sint64.XAKk4DpzteyNlXN.mparamsffi_closure_SYSV_etextmemcpyfprintfffi_closure_raw_SYSVffi_prep_raw_closure_locffi_prep_raw_closureffi_type_uint32ffi_prep_cif_machdeperrno_lib_version_finilibc.so.1SUNW_0.9SUNW_0.7SYSVABI_1.3libffi.so.5/usr/local/lib:/lib:/usr/lib`(= j(= s7|Xf?b;ZT[UshKP  !$%#"&'()*+,-./012YV\uSg5Eq6_CkpNxwLW`D@QOBt^:i>9=FjMR؇܇̉2(ȇ>$ /387.+= 69%4ć̇)Ї-ԇ,A: hhh h$h (h(,h00h8p4h@`8hHP<hP@HhX0Ph` ThhXhplhxphth|hU]]ÐU]ZUSoڋ jEPE PEPRA Pow]ÐU]]ÐU]ZUnڋE@EE@E@@u%Ej@PtEEPE@@JH ЋEBPUE@RPEPEPE@@;~E@EE@@EUEfBEEE@JEPE@JH ЋEBPE@u E EE]U]ZU踳mEEU PEUPEUPEUP E@E@ @u$Ej@ P^tEE@ @ uEE@EE@EEE@@u"Ej@Pt E}E@@H#EtUE@@JH ЍBEE@@HUDEEHEEEEEEmEUPjEPEE]ÐU ]ZU3ljEPEPEPE PEPEE]ÐU]EE@EE@HEE|RE@@ uEEE@@HUDEEHEEEEEE}EEE]ÐU]E@EEEU;Ps}E@@ uE U@BE E 'EU PE@@H@E E E@EEEEEEEEEEU;Pr]ÐU]ZU츣jڋE@EEEU;P3E @U@BEE9E @U@BEEE @U@BEEE @U@BEEE @U@BEEE @U@BEEE U@BEEE @U@BEEdU E@@PBPEP E@@H@EE'E@@H wUD؋UE@EEEEEE EE E EU;Pn]?_33U ]ZUhjEPEPEPE PEP(EE]ÐU]ZUShEE@EE@HEE|sEEE{EE4E@@ } tߐHwոUDUEHEEEEEE}EEE]??KU]E@EEEU;PsUEU PE@@H@E E E@EEEEEEEEEEU;Pr]ÐU$]ZUgڋE@EEEU;P;E @U@BEE[E @U@BEE;E @U@BEEE @U@BEEE @U@BEEE @U@BEEE @U@BEEE @U@BEE~U E@@PBPEPV E@@H@EEAE@@E}EHwUD܋UEk념E@EEEEEE EE E EU;PL];;?_U ]ZUdڋE PEPj EE]ÐU ]ZUdڋE PEPjT EE]ÐU ]ZUcdڋE PEPj$ EE]ÐU ]ZU#djjEPE PEPjEE]ÐU ]EEEU ;PrEU@BU ;s EE"E@EEu E뺐E]ÐU ]EEE U;PrE U @BU;s E!E@EEu E뺐E]ÐU]ZUbڋ@@"@@ @@ @@EXXXXDjP@@u7@UPLjPu@L@DjP_jj cЋ@Pjj Ltjj ;E@@E@UP@@@RH#Ѓu@@@RH#ЃtEE]ÐU]ZUaڋE Ed~@UPE@U;Pr&EUH#Ѓu@UPEREF@UP E.E"EHwUDUE]?'U ]ZU丣`ڋ@@u |uEtEjPZEEEE@.EEEEEEE@ U(+ЉUEE@u EE@؃EE@EEEU;PEU@BU;szEU;PtoE@tdE@uE@U+ЉUE@U‰EEU;Pr)EU@BU;sEU;Pt E@uE@EE \EPRA P2 `EPRA P dEPRA P EtEjP]ÐU(]ZUܸc^ڋ@U P@@HЃ#ЉUE;E jjhjEPjREEEu EE؃EEEE+EEEEEUEPUEPEE@EUDEU;Ps EUPEEEEUEU;vEUEEEE]ÐU,]ZUظ]ڋE @EE s EEU;r'U+U@@E;w E EE @EEEE@UP@@HЃ#ЉUEEEEEE+EEUEPEE@EUDEU;Ps EUPEU+U‰E܋EU܉EU;vEUEEEE]ÐU]ZU[ڋE u EE ؃EEEE EE E+EEEU PEUP UE PE E@(@U@B]ÐU ]EE s5EEED$EEUP EUPE@EE rˋ]ÐUL]uZUZڋE u EE ؃EE EEEu EE؃EEEEE+EEEEEE+EEUEPEU;Pu5E@ EE؋EU؉P E؉E܋EUPU܃EPEU;PuAE@EE؋EU؉PE؉E܋EUPU܃EPEE܋U܉PtE@E@E܋E E@E؋E@ EԋEEЋE;EuUMЋR#ЋEPaEЍEEM؍D$;t EU;Pr9EЍEEMԍD$;t EU;PrE؋UԉP EԋU؉P3EE؋E؋@EԋE؋@ ;Et>E؋@E̋E؋@ EЋEU;PrE̋UЉP EЋỦPE؃E̋E̋@EЋEЃuE؃E̋E̋@EЋEЃt}EЃEȋEȋ@uEЃEȋEȋ@t7EȉE̋E̋@EЋEЃEȋEȋ@u݋EЃEȋEȋ@uɋEU;PrE@EԃE؋PE,E̋E̋U;Pu1E̋UЉPEЃuuEغHҋN#ʋEH6EU;Pr%Eԋ@;EuEԋUЉP EԋUЉPWEЃEU;Pr|EЋUԉPE؋@EȋEȃt'EU;PrEЋUȉPEȋUЉPE؋@EċEăt'EU;PrEЋUĉPEċUЉPEE܉EEE܉EEPEPUEPEEUPE EE܋E܍EED$E؋E؉EԋEM@#ƒuEMH ʋEH$E؋U@;BrE؋@EE؋UPEԋUP EUԉPEU؉P EE܋EEЋEЃu EE=vEEЉE̋E-EȋE̋ME̋E-EċEEĉEȋE̋ME̋E-@EċEEĉEȋE̋ME̋UڋEDEċuċEċUHrEԋUԋE,E؋E܋UԉPEE܋UЉPE܋UЉPEM@#ƒuBEMH ʋEHE؋U܉PE܋U؉PE܋U܉P E܋U܉P)E؋@E̋Eԃu EEڍD؃EċEMEȋE̋@;Et{EЃE̍DEEȍEEȋE@tE@E?EU;Pr)EU܉PE܋ỦPE܋U܉P E܋U܉PoeZE̋@EEU;PrEEtEEEEE@U P@@HЃ)#ЉUE=sVEEEEEt2Et*E;Es"E+EEE U(;v EEEEEEEEEU쉐EU;vEUE@FEUPEUEUEtEEEEEUU@EUEUD;tEEEE!EU@EEE܋E܉E싃@U@B jEPfLU;uE(PEPEP 1UE@DE؋EE+E؃(PEPEP_ EEEt7EU@BU;t$E@EEtEU@BU;u܋EtnEEU@;B u]EuUEU@;BrGMEU@BQ;s1EPUEPUE@ EPBPEP EU;Ps EUPEEEt1EUU@;t!E@EEtEUU@;uߋEt`EEU@;B uOEuGE@EEUPEPUEPjjE PEPEPEPEjjEPEPEPEPEU ;P saE@ +E EEUP EEE@EEE E܋EU܉PE܉EUEPU EPEEh@ EE]ЋuÐUT]uZUEEEEE@EEE@EE@EE@EEu EE؃E܋EE܉EE@E؋E@5UU؋EE(;EEԋEU;PuE@E@-Eԋ@EЋEԋ@ ;Et@Eԋ@EȋEԋ@ E̋EU;PrEȋỦP E̋UȉPEԃEȋEȋ@E̋ẼuEԃEȋEȋ@E̋Ẽt}ẼEċEċ@uẼEċEċ@t7EĉEȋEȋ@E̋ẼEċEċ@u݋ẼEċEċ@uɋEU;PrE@3EЃEԋPE,EȋEȋU;Pu1EȋỦPẼuuEԺHҋN#ʋEH6EU;Pr%EЋ@;EuEЋỦP EЋỦPẼEU;Pr|E̋UЉPEԋ@EċEăt'EU;PrE̋UĉPEċỦPKEԋ@EEt'EU;PrE̋UPEỦP EPEP7u2EEEE+UEEEEUPEEȋEȃuEE=vEEȉEċE-EEċMEċE-EEEEEċMEċE-@EEEEEċMEċUڋEDEuEU؍HrE̋ŰE,EЋEԋỦPEEԋUȉPEԋUȉPEM@#ƒuBEMH ʋEHEЋUԉPEԋUЉPEԋUԉP EԋUԉP)EЋ@EċẼu EEڍD؃EE؋MEEċ@;Et{EЃEčDEEEEE@tE@E?EU;Pr)EUԉPEԋUĉPEԋUԉP EԋUԉPoeZEċ@EEU;Pr|| 8 8j $X\m XM     $ x<  ,   ̆|p !"#$tz+6?NV 6+?[lw0 6+?[6+?[6+?[6+?["> "> #> P#F #d $d $d % &8 (D `&)W 1@|O 8p*k D+ M,R W, e4 q:# {A | G Iw  PS' X j  0c 0\ _F  w wh PxC xQ .yK EPyM NyY Xz fz8 y{8 @{7 {w |< 6+?[6+?[ 0C 6+?[   ą ˅ &҅ 4 = F P Zم c m| X q  p  W  4 8  " 7 KRemt~ |̆( p       3}4 DM g0} y@J   } L   $ 2@ I  [d kj z\m P J @  &3.libs/libffi.so.5.0.10crti.svalues-Xa.cDdata.dataBbss.bssDrodata.rodatadebug.c.L28Dpicdata.picdataprep_cif.cinitialize_aggregatetypes.cjava_raw_api.cclosures.cfstatlstat_xmknodsegment_holdinghas_segment_linkinit_mparamschange_mparaminternal_malloc_stats.L306.L308.L310mmap_allocdlmmapmmap_resizeinit_topinit_binsprepend_allocadd_segmentsys_allocrelease_unused_segmentsdlmunmapsys_trimtmalloc_largetmalloc_smallinternal_reallocdlfreedlmallocinternal_memaligniallocdlcallocdlreallocdlmemaligndlindependent_callocdlindependent_comallocdlvallocdlpvallocdlmalloc_trimdlmalloc_footprintdlmalloc_max_footprintdlmalloc_statsdlmalloc_usable_sizedlmalloptffi64.cffi.cffi_prep_incoming_args_SYSVffi_prep_args_rawnoretvalepilogueretintretfloatretdoubleretlongdoubleretuint8retsint8retuint16retsint16retint64retstructcrtn.s_END__START_ffi_type_floatffi_type_uint64ffi_prep_cif__iobffi_type_doubleffi_type_pointerffi_assertffi_type_uint8_edataffi_type_sint16ffi_call_SYSVffi_type_voidffi_prep_closure_locffi_type_longdoublememsetpthread_mutex_lock_fxstat_xstatffi_java_raw_to_ptrarray_GLOBAL_OFFSET_TABLE_.XAKk4DpzteyNlXN._gm_pthread_mutex_initffi_type_uint16ffi_java_ptrarray_to_rawffi_type_sint8_endffi_callffi_raw_sizeffi_ptrarray_to_rawffi_closure_free_DYNAMIC_PROCEDURE_LINKAGE_TABLE_ffi_closure_allocffi_prep_closureffi_raw_to_ptrarrayffi_prep_args_lxstatffi_type_sint32ffi_raw_call.XAKk4DpzteyNlXN.magic_init_mutexffi_type_testabortsysconfpthread_mutex_unlockffi_stop_hereffi_closure_SYSV_innerffi_java_raw_sizeffi_type_sint64.XAKk4DpzteyNlXN.mparamsffi_closure_SYSV_etextmemcpyfprintfffi_closure_raw_SYSVffi_prep_raw_closure_locffi_prep_raw_closureffi_type_uint32ffi_prep_cif_machdeperrno_lib_version_fini%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1689src/debug.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/.libs/debug.o src/debug.c -W0,-xp.XAKk4DpyteyN1_M.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpyteyN1_M.;backend;raw;cd;DBG_GEN 5.2.7ffi_stop_here!Uffi_assert* wUexpr)file) line)charintffi_type_test3Ua2file2 line2unsignedsize_tunsigned short_ffi_type  size(# alignment5# type5# elements#GGffi_typeunsigned char__FILE _cnt# _ptr# _base# _flag# _magic# __orientation#  __ionolock#   __seekable#   __extendedfd#   __xf_nocheck#   __filler#    fprintf  abortsrc/prep_cif.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/.libs/prep_cif.o src/prep_cif.c -W0,-xp.XAKk4DpyteyN1DN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpyteyN1DN.;backend;raw;cd;DBG_GEN 5.2.7initialize_aggregate%Uzarg$ptr&FFI_OKFFI_BAD_TYPEDEFFFI_BAD_ABIffi_statusunsignedsize_tunsigned short _ffi_type a size# alignment# type# elementsf#  affi_type k a ffi_prep_cifZ1U1cifXabiX nargsXzrtypeYatypesYbytes[i\ptr] ffi_abiFFI_FIRST_ABIFFI_SYSVFFI_UNIX64FFI_DEFAULT_ABIFFI_LAST_ABI1ffi_abi abi# nargs# arg_types# rtypez# bytes# flags#ffi_cif  ffi_prep_closure@Uv!closurecif Bfunuser_datacharlongv ~ void    tramp# cif# fun# user_data#ffi_closure B & ffi_prep_cif_machdeptG  y ffi_prep_closure_loctGsrc/types.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/.libs/types.o src/types.c -W0,-xp.XAKk4DpzteyN1IN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyN1IN.;backend;raw;cd;DBG_GEN 5.2.7unsignedMsize_tunsigned short_ffi_type sizeY#alignmentf#typef#elements#xxffi_typeffi_type_void0ffi_type_uint84ffi_type_sint8%5ffi_type_uint16H6(ffi_type_sint16l74ffi_type_uint328@ffi_type_sint329Lffi_type_uint64:Xffi_type_sint64;dffi_type_pointer =pffi_type_floatE?|ffi_type_doubleh@ffi_type_longdoubleL[src/raw_api.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/.libs/raw_api.o src/raw_api.c -W0,-xp.XAKk4DpzteyNlNN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNlNN.;backend;raw;cd;DBG_GEN 5.2.7ffi_raw_size$U1cif#result%i6&at(unsignedsize_tffi_abi3FFI_FIRST_ABIFFI_SYSVFFI_UNIX64FFI_DEFAULT_ABIFFI_LAST_ABIffi_abiunsigned short ] S _ffi_type  size# alignmentA# typeA# elementsX# S]ffi_type  # abi3# nargs# arg_types# rtype# bytes# flags#ffi_cif #int ffi_raw_to_ptrarray: U1cif9~raw9 args9i;tp<signed longffi_sargunsigned longffi_argfloatcharlongvoid p sint# uint# flt# data # ptr$#)ffi_raw p $ ffi_ptrarray_to_rawU1cifargs ~rawitpffi_prep_raw_closureUl@cl1cif afun$user_dataFFI_OKFFI_BAD_TYPEDEFFFI_BAD_ABIlffi_status   )$$  * tramp# cif1# fun# user_data$#ffi_raw_closure *a$$ E fmemcpy$$k  $$  ffi_prep_raw_closure_loc\src/java_raw_api.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/.libs/java_raw_api.o src/java_raw_api.c -W0,-xp.XAKk4DpzteyNlSN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNlSN.;backend;raw;cd;DBG_GEN 5.2.7/ffi_java_raw_size. UEcif-result/iJ0at2unsignedsize_tffi_abiGFFI_FIRST_ABIFFI_SYSVFFI_UNIX64FFI_DEFAULT_ABIFFI_LAST_ABIffi_abiunsigned short q g _ffi_type  size# alignmentU# typeU# elementsl# gqffi_type  7 abiG# nargs# arg_types# rtype# bytes# flags#ffi_cif 7int ffi_java_raw_to_ptrarrayJn UEcifIrawI argsIiKtpLsigned longffi_sargunsigned longffi_argfloatcharlong5void 5 sint# uint# flt # data$# ptr=#Bffi_java_raw  = ffi_java_ptrarray_to_rawp i"U)Ecifargs rawitpBabort5 4memcpy==9,Jsrc/closures.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/.libs/closures.o src/closures.c -W0,-xp.XAKk4DpzteyNlXN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNlXN.;backend;raw;cd;DBG_GEN 5.2.7Ostat""U_path _buf intcharunsigned longdev_tlong  ino_tmode_tnlink_tunsigned uid_t gid_t> off_ttime_t timespec tv_secJ# tv_nsec#Wtimestruc_tblksize_tblkcnt_t    stat  st_dev# st_pad1# st_ino# st_mode# st_nlink# st_uid# st_gid!# st_rdev#$ st_pad2-#( st_size>#0 st_pad3#4 st_atim#8 st_mtim#@ st_ctim#H st_blksize#P st_blocks#T st_fstype#X st_pad4#hlstat"#UNS_path _buf Nfstat#N#U_fd _buf mknodP##U_path_mode _devunsigned shortuint16_tunsigned char uint8_t  __pthread_mutex_flag1# __pthread_mutex_flag2# __pthread_mutex_ceiling# __pthread_mutex_type# __pthread_mutex_magic#   __pthread_mutex_pad# uint32_t M __pthread_ownerpid# __pthread_lockword#unsigned long longMupad64_t  __pthread_mutex_lock64# __pthread_mutex_lock32# __pthread_mutex_owner64c# _pthread_mutexG __pthread_mutex_flags,# __pthread_mutex_lockr# __pthread_mutex_datac#pthread_mutex_tmagic_init_mutexGzsegment_holding2#$UP m2addr2 spP3 size_tptrdiff_t malloc_segmentP base# size# next# exec_offset# msegmentptr binmap_tv malloc_chunk prev_foot# head# fdq# bkq# qmchunkptr A   bindex_t malloc_tree_chunk  prev_foot# head# fd# bk# child# parent# index#tbinptr  flag_tmsegmentmalloc_state smallmapb# treemapb# dvsize# topsize# least_addr# dv# top# trim_check# magic# smallbins#$ treebins # footprint# max_footprint# mflags # mutexG# seg #  mstatehas_segment_link=$t$UB  m=Pss= spP>init_mparams $%U $%$%$%s change_mparam %&U param_number value  val internal_malloc_stats, &)U  m, &)6')6')maxfp. fp/ used0 K'(Z'(Z'(sP3 '('|('|(q9 mmap_allocQ )g*U   mQ nbQ  mmsizeR Q)X*])X*])X*mmT y)X*)X*)X*offsetV psizeW pX void mmap_resizel p*+U ml oldpl  nbl oldsizem *+*+*+offsetu oldmmsizev newmmsizew cpy '++3++3++newp| psize} init_top +,Ut m p  psize offset init_bins ,,U m i ,,,,,,bin qsbinptrprepend_alloc ,4U & m newbase  oldbase nb p oldfirst psize q qsize -4----tsize -4-4-+.-+.dsize 0.40.40.G1B.G1B.G1nsize N.51]..]..F B I /51/51TP&  /51XP& R& / 0/U//U/F& \/ 0\/ 0RP6 \/ 0/ 0/ 0CP6  051051051H; 0510510510510-10-1C0& C1& n14}12}12I B F  24 24TP& &24H; I &22X /22D22D22\22\22Y  N  K  #34|34|34T& K 343434343@43@4C6 D44D44F& tchunkptr& add_segment 4:U2 m tbase  tsize  mmapped old_top oldspP old_end ssize rawsp offset asp csp sp ssP tnext p nfences 666666nextp 6|:7|:7|:q psize tn G7|:V77V77I B F 7|:7|:TP& 7|:H; I 78X 888888488488Y  N  K  8|:T9|:T9|:T& K 9|:9t:9t:9t:9:9:C6 :t::t:F& Csys_alloc :AU ~ m nb  tbase tsize! mmap_flag " :;:;:;mem ( ;<;<;<br? ssP@ asizeA [;O<g;;g;;baseE O<<[<<[<<[<<c<<c<<c<<z<<z<<esizeb <<<<<<endd <j==j==j=reqz rsize{ +=j=3=j=3=j=mp} j==p==p==asize ======br end ======ssize =A=A=A7>(AF>?F>?-??T??T??mn ?(A?(AspP ?(AL@(AL@(A@(A@ A@ Aoldbase (AA3AA3AArsize p r release_unused_segments AGU! m released predP spP AG BG BGbase size nextP &BG&BG&BGp psize iBGBGBGtp& BDBDBDBDXP& R& BCB CB CF& CCCCRP6 CCDCCDCCCP6 CDCDCDH; QDD]DD]DD]DDhDDhDDC0& C1& DG0EG0EG0EGH; I 0EEX 9EEPEEPEEhEEhEEY  N  K  /FGFGFGT& K FGFGFGFGFLGFLGC6 PGGPGGF& sys_trim GIU# m pad  released HI#HI#HI,HqI;HqI;HqIunitextraspPzH(IzH(IzH(IzH(IzHHzHHzHHHHHHnewsizeH(IH(IH(IH(IH(Iold_br(H(II(II(Irel_br*new_br+tmalloc_largeKIGSU ) mKnbK v&LrsizeMt&NidxOJJXP JJ JJ JJ8JJ8JJY PN PK PJKJKJKsizebitsTrst&U&KK&KK&KKrt&WtremXKLKLKLleftbitsbkKLKLKLimleastbitbn LLY oK oN oLMLMLMtremuM5S?M5S?M5S?M0SNM0SNM0SrWM0ScM0ScM0ScMOXP&R&lMeNwMMwMMF&MeNMeNRP6MeNMeNMeNCP6eNOqNOqNOH;NOOOOOOO OO OOC0&C1&O$SO$SO$SO$SOPOPIBFP$SP$STP&P$SH;IPqQXPqQPqQPqQPqQPqQY N K Q$SQ$SQ$ST&K;R$S;RS;RS;RSIRRIRRC6RSRSF&tmalloc_smallPSwXU F- mnb t&v&rsizeileastbitbS2TY K N WTTTTTTtremT`XT`XT`XrT`XT`XT`XT%WXP&R&UUUEUUEUF&LUULUURP6LUUUUUUCP6U%W V%W V%WH;V%WV%WV%WV%WVWVWC0&C1&%WSXdWSXdWSXWSXDVSWAXWAXWAXDVWAXIBFinternal_reallocX/\U / m oldmem bytesX \ Y \ Y \oldpoldsizenextnewpextra 5Y@[tY[tY[nbY[Y[Y[YmZYmZrsizeYmZYmZYmZremaindertZ[tZ[Z[Z[newsizenewtopsizenewtopd[ \[ \[ \newmem [\[\[\ocinternal_memalign0\_U 2 malignment bytes\\\\\\a \_\_\_nbreqmem+]_7]_7]_leader trailer p]^]^]^br&pos*newp,leadsize-newsize.^s_^s_^s_size>^s_^s_^s_remainder_size@remainderAialloc^_&cU33 mZn_elements[ 3sizes\opts]3chunks^element_sizehcontents_sizeiarray_sizejmem kplremainder_sizemmarray3narray_chunkowas_enabled psizeqir bUb(bUb(bUbarray_chunk_size dlmalloc0ciU 7bytesTcicicimem nbc@hcgcgidxsmallbitsbcgcdcdbp+ddFdgdgdgdgdgdgdgbprrsizeileftbitsbleastbitb&eeY K N eMfF]fgfgfgfgDVS fgfgfgDV fgI B F @hiRh iRh irsize8p9mhiuhhuhhr;hihidvsA ii ii.ii.iirsizeLpMrNdlfreeajwU? mema$j w0j w0j wpi9j wj wj wjvjvjvpsizevnextwjnjnjnprevsizeyjn4kn4knprevLkn^kn^kn^knpknpknpknk1lk1lFBI8ln8lnTP&>lnXP&R&GlMmRllRllF&lMmlMmRP6lMmlMmlMmCP6MmnYmnYmnH;mnmnmnmnmynmynC0&C1&nvnvnvnsoXsoXsoXsooootsizeoXsoXsoooodsizeoXsoXsnsize p!sppppFBIp!sp!sTP&p!sXP&R&pqp-qp-qF&4qq4qqRP64qqlqqlqqCP6q!sq!sq!sH;r!sr!sr!sr!srsrsC0&C1&svs9ts9tIBF@tv@tvTP&FtvH;IFtuXOtudtudtu|tu|tuY N K FuvuvuvT&KuvuvuvuvulvulvC6pvvpvvF&dlcalloc wwU @n_elementselem_size mem reqdlreallocwHxU }@ oldmembytes x@xx@xx@xm dlmemalignPxxU @alignmentbytes dlindependent_callocxxU3GAn_elementselem_size 3chunksszdlindependent_comallocyKyU3An_elements3sizes 3chunksdlvallocPyyU AbytespageszdlpvallocyyU HBbytespageszdlmalloc_trimzzUBpadresult dlmalloc_footprintzzUdlmalloc_max_footprint{8{Udlmalloc_stats@{w{Udlmalloc_usable_size#{{UxC mem#{{{{{{p%dlmallopt,|<|UCparam_number,value, dlmmap@||U JD startlength protflagsfd>offsetdlmunmap|#}UD startlength segPcode |}|}|}ret ffi_closure_alloc+0}}U ~Esize*3code* ptr ,u}}}}}}}}segP5ffi_closure_freeC}}UE ptrB_gm_  malloc_paramsXF magic# page_size# granularity# mmap_threshold# trim_threshold# default_mflags #mparamsEabort getpagesizes2FzFgetpagesizes2FzFmunmapF caddr_tmmapF)GF pthread_mutex_unlockVG)Gpthread_mutex_lock|G)G _pthread_mutexattrG __pthread_mutexattrp #|GGpthread_mutex_initG)GG  __FILE H _cnt# _ptrG# _baseG# _flag # _magic # __orientation # __ionolock #  __seekable #  __extendedfd #  __xf_nocheck #  __filler #  GHfprintfHHHsysconfII_xmknodOII ITI_lxstatIOIYI I_xstatIII _fxstatII memset J   Jmemcpy   J Vsrc/x86/ffi64.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/x86/.libs/ffi64.o src/x86/ffi64.c -W0,-xp.XAKk4DpzteyNVgN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNVgN.;backend;raw;cd;DBG_GEN 5.2.7o# src/x86/ffi.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -KPIC -DPIC -o src/x86/.libs/ffi.o src/x86/ffi.c -W0,-xp.XAKk4DpzteyNFqN.Xa;g;P;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNFqN.;backend;raw;cd;DBG_GEN 5.2.7#ffi_prep_args.}Ustack-ecif- i/p_argv0argp1p_arg 2C~g~g~zGcharffi_abi{ FFI_FIRST_ABI FFI_SYSV FFI_UNIX64 FFI_DEFAULT_ABI FFI_LAST_ABI "ffi_abiunsigned size_tunsigned short _ffi_type   size# alignment# type# elements# ffi_type  abi{# nargs# arg_types # rtype!# bytes# flags# &ffi_cifvoid  cif# rvalue# avalue# extended_cifffi_prep_cif_machdepRUa0cifa FFI_OK FFI_BAD_TYPEDEF FFI_BAD_ABI 0ffi_statusffi_call<Ucif fn  rvalue avalue ecifffi_closure_SYSV_inner@ցUclosurerespp argscifarg_arealong  &  tramp# cif# fun# user_data# ffi_closureffi_prep_incoming_args_SYSVUstackrvalue avaluecifip_argvargpp_arg /l/lzffi_prep_closure_locFUaclosurecif :funuser_datacodeloc  __trampP+__fun+__ctx+__dis+:unsigned char?ffi_prep_raw_closure_locNP$UaX  closureIcifJ  funKuser_dataLcodelocMi O__trampPa__funa__ctxa__disa i  signed long i ffi_sargunsigned long ffi_argfloat  sintx # uint # flt # data # ptr# (   m trampX # cif# fun( # user_data# - ffi_raw_closurem    intffi_prep_args_rawm0sU stacklecifl ffi_raw_call8U cif fn rvalue fake_avalueecifavalue ffi_raw - ffi_closure_raw_SYSV  ffi_closure_SYSV      ffi_call_SYSVW     W memcpy \ __builtin_allocac src./include/usr/include/isodebug.cffi.hstddef_iso.hstdio_impl.h$ A*h m r :e src./include/usr/include/isoprep_cif.cffi.hstddef_iso.hffitarget.h-    ,g pr         : HW ^|   g) @a YS src./include/usr/include/isotypes.cffi.hstddef_iso.h,d src/usr/include/iso./includeraw_api.cstddef_iso.hffi.hffitarget.h$  y    );2.DS lu u  0 8P Xp x      ) HXn~- i src/usr/include/iso./includejava_raw_api.cstddef_iso.hffi.hffitarget.h A.HQ c hq ty v~  +  9 pi p         ! !0! 8!P! X!p! x!! ! ! !! !0"~d" src/usr/include/sys/usr/include/isoclosures.cstat_impl.hstat.htypes.htime_impl.hint_types.hdlmalloc.cstddef_iso.hstdio_impl.h""" ""# #1#F# P#q## ### # # # # # $$$$ B$ L$ ]$ h$ l$ $$$$ $$$ $ %  % "% 7% H%_% %% % % %&& &  & ,& 8& T& `& l&x& & & &q&&&6' =' D' K' Z' e' q' }' ' ' ' ( ( .( ?(}s(|(x( ( ( ( ) )1)Q) ]) y) ) ) ) ) ) ) ) )  * * ;* M*X*_* p*** * ** * * +  + '+ 3+ <+ H+ T+ a+ o+ z+ + + + ++ +,2, ;, D, M, V, b, o, ~, ,,, , ,~,,-I- }- - - - -- - - --  . . 0.B. N. 51 >1 G1 n1 44 444  5 5 5 -5 ^5 g5 5 5 5 5 5 555 5 6 6 6 66 6 6 6 6 6 67 7 7  7 G7 |:::: : : :: ; ; ;; #; T; [;g; n; v; ; ; ;; ; ;<C< I< O<[< c< z< < < < < < < << < <<= = += 3= O= W= ]= c= j=p= = = = = = = = = = = == %> 7> F> [> g> ? ? -? :? T?g? ?? ? ? ?@ *@ L@W@ `@ k@ @ @ @@ @ @ @  A(A3A NA WA oA {A AAA A AAA A A  B B B &B &B ]B iB B B B B BD D E E "E 0EGG GaG!G GHH #H ,H ;H GH dH zH zH zHH HH HH H HH I I I I (I0I ?I TI qIqI II II III JJ J K &K5K =K CK QK TK ]K rK K K K K K K KK K K  L L LL L L L L MzM ?M NM WM cM O O O O O $S 0S5S ] E] N] ] ] ] ] ] ]  ^ )^ 8^ H^z^ ^ ^ ^^ ^ ^ ^ _ 8_ j_ s__ _ _ _ _ __ _` ` ` ` "` ,`4` H` O` ~`` ` `` ` ` a "a+a:a Oa ca ka a a a a a ab  b(b 1b :b Cb Ob Ub\b kb vb ~b b b b b bb bsbbc c 0cTcccc c c c  d "d +d d d d dd de &e e e e Mf ]f `f f f f f g g gg gg h  h 8h @hRh ah mh uh h h h hh h h i i  i.i Oi [i vi i i iiii ii j$j 0j 9j j j j j j j j j j k ,k 4k=k Fk Lk ^k pk n n n n nnn o o ;o Go So ao no {o o o o o o o o op  p !s 9s Gs Ss \ss v vv  w wAw!Hw Pw Zw ww ~w w w w w wx! x x %x@x Pxqx!x xx!x x y!y!Cy Pyqy!vy y y yy"y y y z!z"(z oz z z z zz"z {!{"0{ @{a{"r{ {{"{ { { { { |!|"4| @|a|| |||| | | }} 0}Q}Y} d} u} }} } }} }}} )# src/x86ffi64.ct src/x86./include/usr/include/isoffi.cffi_common.hffi.hffitarget.hstddef_iso.h}~3~%~ 1~ :~C~ [~ g~r~ }~ ~~ ~ ~~ ~~ ~~ ~~ ~  + 4d\$s |    *  CJ  Ӏ    $X4*@aj  Ł ΁     /: EQZcl`$  % . 7 > Pq|      0Qn   ̈́    r0 DD%.?  : ; @ ' D .?  : ; @ ' D I: ;  $> II:  :  I8 I8 &I .? < ' ID  I.? < ' D  DD%. : ; @ ' ID I: ;  4I : ;   : ( I: $>  :  I8 I .?  : ; @ ' ID   :  : I !I/ ' D I.? < ' ID .? < ' ID  DD%$> I:  :  I8 I&I4I?  : ;   DD%.?  : ; @ ' ID I: ;  4I : ;  $> I:  : ( I  :  I8  :  .?  : ; @ ' D I !I/  :  : ' D I&I.? < ' ID .? < ' ID  DD%.?  : ; @ ' ID I: ;  4I : ;  $> I:  : ( I  :  I8  :  .?  : ; @ ' D I !I/  : D D .? < ' D &I.? < ' ID I DD%. : ; @ ' ID I: ;  $> &III: I  !I/  :  I8  :   : 4I : ; . : ;@ ' ID I: ; I  :  . : ;@ ' D D D . : ;@ ' ID . : ;@ ' D .?  : ;@ ' ID .?  : ;@ ' D .? < ' D .? < ' ID I I8 .? < ' ID  DD% DD%.?  : ; @ ' D I: ;  4I : ;   $> I :  ( I:  :  I8  : .?  : ; @ ' ID  : .?  : ;@ ' D I: ; 4I : ; ' D .?  : ;@ ' ID I !I/ ' D I. : ;@ ' D  : .? < ' D &I.? < ' ID .? < ' ID AMffi_stop_herelffi_assertffi_type_test4ffi_prep_cif ffi_prep_closure ffi_type_voidffi_type_uint8*ffi_type_sint8Mffi_type_uint16qffi_type_sint16ffi_type_uint32ffi_type_sint32ffi_type_uint64ffi_type_sint64%ffi_type_pointerJffi_type_floatmffi_type_doubleffi_type_longdoublehs Sffi_raw_size=ffi_raw_to_ptrarrayffi_ptrarray_to_rawffi_prep_raw_closure^u`bffi_java_raw_sizeQffi_java_raw_to_ptrarrayffi_java_ptrarray_to_raw90JDffi_closure_alloc~Effi_closure_free_e Sffi_prep_argsffi_prep_cif_machdeprffi_callffi_closure_SYSV_innerffi_prep_closure_locUffi_prep_raw_closure_loc ffi_raw_call?(size_tG_ffi_typeffi_type__FILEffi_statussize_t_ffi_typekffi_type1ffi_abiffi_abiffi_cifffi_closure4 Ysize_tx_ffi_typeffi_types size_tffi_abi3ffi_abi]_ffi_typeffi_type#ffi_cifffi_sargffi_arg)pffi_rawlffi_status*ffi_raw_closureu`size_tffi_abiGffi_abiq_ffi_typeffi_type7ffi_cifffi_sargffi_argBffi_java_raw60Jdev_tino_tmode_tnlink_tuid_t!gid_t>off_tJtime_tWtimespectimestruc_tblksize_tblkcnt_tstatuint16_tuint8_t,uint32_tcupad64_tr_pthread_mutexGpthread_mutex_tsize_tptrdiff_tmalloc_segmentPmsegmentptrbbinmap_tvmalloc_chunkmchunkptrbindex_t malloc_tree_chunk tbinptr flag_t msegment malloc_state mstatesbinptr&tchunkptrEmalloc_paramsFcaddr_t|G_pthread_mutexattrG__FILE_e "ffi_abi{ffi_abisize_t_ffi_typeffi_type&ffi_cifextended_cif0affi_statusffi_closurex ffi_sarg ffi_arg - m ffi_raw_closure ffi_raw'Vinitialize_aggregate0JVstatlstatXfstatmknod}segment_holding has_segment_linkB init_mparams change_mparam internal_malloc_stats mmap_alloc mmap_resizeinit_toptinit_binsprepend_alloc@add_segment2sys_alloc~release_unused_segments!sys_trim#tmalloc_large)tmalloc_smallF-internal_realloc/internal_memalign2ialloc3dlmalloc7dlfree?dlcalloc@dlrealloc}@dlmemalign@dlindependent_callocGAdlindependent_comallocAdlvallocAdlpvallocHBdlmalloc_trimBdlmalloc_footprintBdlmalloc_max_footprintBdlmalloc_stats Cdlmalloc_usable_sizexCdlmalloptCdlmmapJDdlmunmapD_e ffi_prep_incoming_args_SYSV ffi_prep_args_raw80J]magic_init_mutexE_gm_XFmparams.SUNW_cap.eh_frame_hdr.hash.SUNW_ldynsym.dynsym.dynstr.SUNW_version.SUNW_versym.SUNW_dynsymsort.SUNW_reloc.rel.plt.text.init.fini.rodata.rodata1.got.dynamic.eh_frame.data.bssf.picdata.bss.symtab.strtab.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_typenames.debug_funcnames.debug_varnames.shstrtabo $o$$8-  5" =oxx@KoXo<<hi u B,, y@~n̆̆r||hpp|  ,pprv!q(Iv]RJ-Uj>[&O7^<_ s^i07070100188e5c000081a40000000000000000000000014dc9eb730001bda4000000b600010002ffffffffffffffff0000001c00000000root/usr/local/lib/libffi.a! / 1305078643 0 0 0 880 ` (dd)))))))))))))9999QQQhhhhhffi_stop_hereffi_assertffi_type_testffi_prep_cifffi_prep_closureffi_type_voidffi_type_uint8ffi_type_sint8ffi_type_uint16ffi_type_sint16ffi_type_uint32ffi_type_sint32ffi_type_uint64ffi_type_sint64ffi_type_pointerffi_type_floatffi_type_doubleffi_type_longdoubleffi_raw_sizeffi_raw_to_ptrarrayffi_ptrarray_to_rawffi_prep_raw_closureffi_java_raw_sizeffi_java_raw_to_ptrarrayffi_java_ptrarray_to_raw.XAKk4DpzteyNlYN.mparams.XAKk4DpzteyNlYN.magic_init_mutex.XAKk4DpzteyNlYN._gm_ffi_closure_allocffi_closure_freeffi_prep_argsffi_prep_cif_machdepffi_callffi_closure_SYSV_innerffi_prep_closure_locffi_prep_raw_closure_locffi_raw_callffi_call_SYSVffi_closure_SYSVffi_closure_raw_SYSVdebug.o/ 1305078642 0 0 100644 3956 ` ELFT 4(.strtab.text.bss.data.rodata.rodata1.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_typenames.symtabdebug.cBbss.bssDdata.dataDrodata.rodataffi_stop_hereffi_assert__iobfprintfabortffi_type_test.rel.text.rel.debug_info.rel.debug_line.rel.debug_pubnames.rel.debug_typenamesUÐUjEPE PEPhh ÐUASSERTION FAILURE: %s at %s:%d %Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21src/debug.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/debug.o src/debug.c -W0,-xp.XAKk4DpyteyNl\$M.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpyteyNl$M.;backend;raw;cd;DBG_GEN 5.2.7ffi_stop_here!Uffi_assert*?Uexpr)file) line)charintffi_type_test3EU a2file2 line2unsigned size_tunsigned short_ffi_type  size# alignment"# type"# elements#44ffi_typeunsigned char__FILE _cnt# _ptr# _base# _flag# _magic# __orientation #  __ionolock #   __seekable #   __extendedfd #   __xf_nocheck #   __filler #    fprintf  abortc src./include/usr/include/isodebug.cffi.hstddef_iso.hstdio_impl.h$*3 8 = C: DD%.?  : ; @ ' D .?  : ; @ ' D I: ;  $> II:  :  I8 I8 &I .? < ' ID  I.? < ' D A:ffi_stop_hereYffi_assertffi_type_test?size_t4_ffi_typeffi_type__FILE     /@" ',49 6MQimpw  4S E" +04(?(KWe Eu C$ p (  @  H * D  > L  prep_cif.o/ 1305078642 0 0 100644 5700 ` ELF4(.strtab.text.bss.data.rodata.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_funcnames.debug_typenames.symtabprep_cif.cinitialize_aggregateBbss.bssDdata.dataDrodata.rodataffi_prep_cifffi_prep_cif_machdepffi_prep_closureffi_prep_closure_loc.rel.text.rel.debug_info.rel.debug_line.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenamesU E@EE@E@@u$Ej@PtEEPE@@JH ЋEBPUE@RPEPEPE@@;~E@EE@@EUEfBEEE@KEPE@JH ЋEBPE@u E EEÐUEEU PEUPEUPEUP E@E@ @u#Ej@ Pt EE@ @ uEE@EE@EEE@@u"Ej@P$t E}E@@H#EtUE@@JH ЍBEE@@HUDEEHEEEEEEmEUPjEPEEÐUjEPEPEPE PEPEE%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21src/prep_cif.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/prep_cif.o src/prep_cif.c -W0,-xp.XAKk4DpyteyNlEN.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpyteyNlEN.;backend;raw;cd;DBG_GEN 5.2.7initialize_aggregate%Ufarg$ptrk&FFI_OKFFI_BAD_TYPEDEFFFI_BAD_ABIffi_statusunsignedsize_tunsigned short _ffi_type M size# alignment# type# elementsR#  Mffi_type W M ffi_prep_cifZrUcifXvabiX nargsXfrtypeYkatypesYbytes[i\ptrk] ffi_abivFFI_FIRST_ABIFFI_SYSVFFI_UNIX64FFI_DEFAULT_ABIFFI_LAST_ABIffi_abi abiv# nargs# arg_typesk# rtypef# bytes# flags#ffi_cif  ffi_prep_closureUb closurecif .funuser_datacharlongb j void    trampr# cif# fun# user_data#ffi_closure .  ffi_prep_cif_machdep`3  e ffi_prep_closure_loc`3e src./include/usr/include/isoprep_cif.cffi.hstddef_iso.hffitarget.h-  B Pk  r     &-6 ? H Q [     1gS\m   DD%. : ; @ ' ID I: ;  4I : ;   : ( I: $>  :  I8 I .?  : ; @ ' ID   :  : I !I/ ' D I.? < ' ID .? < ' ID 4pffi_prep_cifffi_prep_closure'Binitialize_aggregateffi_statussize_t_ffi_typeWffi_typeffi_abivffi_abiffi_cifffi_closure     R,c >[_ ry &.6@HRZdnv   4 |||"|+M6MB N \8l@+}k`- X7 h@G 8 W  k     types.o/ 1305078643 0 0 100644 3828 ` ELFL 4(.strtab.text.bss.data.rodata.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_typenames.symtabtypes.cBbss.bssDdata.dataDrodata.rodataffi_type_voidffi_type_uint8ffi_type_sint8ffi_type_uint16ffi_type_sint16ffi_type_uint32ffi_type_sint32ffi_type_uint64ffi_type_sint64ffi_type_pointerffi_type_floatffi_type_doubleffi_type_longdouble.rel.debug_info.rel.debug_pubnames.rel.debug_typenames     %Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21src/types.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/types.o src/types.c -W0,-xp.XAKk4DpzteyNlJN.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNlJN.;backend;raw;cd;DBG_GEN 5.2.7unsigned9size_tunsigned short_ffi_type sizeE#alignmentR#typeR#elements#ddffi_typeffi_type_void0ffi_type_uint84ffi_type_sint85ffi_type_uint1646ffi_type_sint16X7ffi_type_uint32|8ffi_type_sint329ffi_type_uint64:ffi_type_sint64;ffi_type_pointer =ffi_type_float1?ffi_type_doubleT@ffi_type_longdoublexLYS src./include/usr/include/isotypes.cffi.hstddef_iso.h DD%$> I:  :  I8 I&I4I?  : ;  ffi_type_voidffi_type_uint8ffi_type_sint89ffi_type_uint16]ffi_type_sint16ffi_type_uint32ffi_type_sint32ffi_type_uint64ffi_type_sint64ffi_type_pointer6ffi_type_floatYffi_type_double}ffi_type_longdouble4Esize_td_ffi_typeffi_type      $ 0 < H 'T 7` Gl Xx g w  5  0Tx-Pt  4 "+?6?B]N>e\l 8}  x  <   D  raw_api.o/ 1305078643 0 0 100644 6308 ` ELF4(.strtab.text.bss.data.rodata.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_typenames.symtabraw_api.cBbss.bssDdata.dataDrodata.rodataffi_raw_sizeffi_raw_to_ptrarrayffi_ptrarray_to_rawmemcpyffi_prep_raw_closureffi_prep_raw_closure_loc.rel.text.rel.debug_info.rel.debug_line.rel.debug_pubnames.rel.debug_typenamesUEE@EE@HEE|QE@@ u EEE@@HUDEEHEEEEEE}EEEÐUE@EEEU;Ps|E@@ uE U@BE E &EU PE@@H@E E E@EEEEEEEEEEU;PrÐUE@EEEU;P2E @U@BEE,E @U@BEE E @U@BEEE @U@BEEE @U@BEEE @U@BEEE U@BEErE @U@BEEWU E@@PBPEP E@@H@EEE@@ w$E@EEEEEE EE E EU;P|\|PP4UjEPEPEPE PEPEE%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21src/raw_api.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/raw_api.o src/raw_api.c -W0,-xp.XAKk4DpzteyNlON.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNlON.;backend;raw;cd;DBG_GEN 5.2.7ffi_raw_size$Ucif#result%i"&at(unsignedsize_tffi_abiFFI_FIRST_ABIFFI_SYSVFFI_UNIX64FFI_DEFAULT_ABIFFI_LAST_ABIffi_abiunsigned short I ? _ffi_type  size# alignment-# type-# elementsD# ?Iffi_type   abi# nargs# arg_types# rtype# bytes# flags#ffi_cif int ffi_raw_to_ptrarray:/Ucif9jraw9 oargs9i;tp<signed longffi_sargunsigned longffi_argfloatcharlongvoid \ sint# uint# flt# data# ptr#ffi_raw \  ffi_ptrarray_to_rawUcifoargs jrawitpffi_prep_raw_closure<UX,clcif Mfunuser_dataFFI_OKFFI_BAD_TYPEDEFFFI_BAD_ABIXffi_status      tramp# cif# fun# user_data#ffi_raw_closure M 1 RmemcpyW    ffi_prep_raw_closure_loc,d src/usr/include/iso./includeraw_api.cstddef_iso.hffi.hffitarget.h$  (7 D[yy  ;.  u-6? U \t |     1 4L Pm X~-7  DD%.?  : ; @ ' ID I: ;  4I : ;  $> I:  : ( I  :  I8  :  .?  : ; @ ' D I !I/  :  : ' D I&I.? < ' ID .? < ' ID h?ffi_raw_size)ffi_raw_to_ptrarraytffi_ptrarray_to_rawffi_prep_raw_closuresize_tffi_abiffi_abiI_ffi_typeffi_typeffi_cifffi_sargffi_arg\ffi_rawXffi_statusffi_raw_closure    0,f- ; QUBF qx +2>FNX`jr|&  4z <"+6B 0N0\llQ} `' lh 1 P A $x Q  e  java_raw_api.o/ 1305078643 0 0 100644 5748 ` ELF|4(.strtab.text.bss.data.rodata.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_typenames.symtabjava_raw_api.cBbss.bssDdata.dataDrodata.rodataffi_java_raw_sizeabortffi_java_raw_to_ptrarrayffi_java_ptrarray_to_rawmemcpy.rel.text.rel.debug_info.rel.debug_line.rel.debug_pubnames.rel.debug_typenamesUEE@EE@HEE|eEE8EE'E@@ } tߐ w$EHEEEEEE}EEE,,8UE@EEEU;PsUEU PE@@H@E E E@EEEEEEEEEEU;PrÐUE@EEEU;P:E @U@BEECE @U@BEE#E @U@BEEE @U@BEEE @U@BEEE @U@BEEE @U@BEEE @U@BEEfU E@@PBPEP E@@H@EE)E@P}Bw$t럐E@EEEEEE EE E EU;PeXX\|%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21Bsrc/java_raw_api.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/java_raw_api.o src/java_raw_api.c -W0,-xp.XAKk4DpzteyNVTN.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNVTN.;backend;raw;cd;DBG_GEN 5.2.7ffi_java_raw_size.U1cif-result/i60at2unsignedsize_tffi_abi3FFI_FIRST_ABIFFI_SYSVFFI_UNIX64FFI_DEFAULT_ABIFFI_LAST_ABIffi_abiunsigned short ] S _ffi_type  size# alignmentA# typeA# elementsX# S]ffi_type  # abi3# nargs# arg_types# rtype# bytes# flags#ffi_cif #int ffi_java_raw_to_ptrarrayJ(U1cifIrawI argsIiKtpLsigned longffi_sargunsigned longffi_argfloatcharlong!void !u sint# uint# flt# data# ptr)#.ffi_java_raw u ) ffi_java_ptrarray_to_rawU1cifargs rawitpabort! memcpy))i src/usr/include/iso./includejava_raw_api.cstddef_iso.hffi.hffitarget.h.  ( ,5 8= Hvo~ + p&6? U \t |     4 < T Xu ~ DD%.?  : ; @ ' ID I: ;  4I : ;  $> I:  : ( I  :  I8  :  .?  : ; @ ' D I !I/  : .? < ' D &I.? < ' ID I^FNffi_java_raw_size=ffi_java_raw_to_ptrarrayffi_java_ptrarray_to_rawFsize_tffi_abi3ffi_abi]_ffi_typeffi_type#ffi_cifffi_sargffi_arg.uffi_java_raw    x0 9kn  J ei[_v} *9@LT\fnx   4f "+6FB N \bld}P D  @ - h = l Q t closures.o/ 1305078643 0 0 100644 72052 ` ELF4(.strtab.text.bss.data.rodata.rodata1.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.symtabclosures.cstatlstatfstatmknodsegment_holdinghas_segment_linkinit_mparamschange_mparaminternal_malloc_statsmmap_allocdlmmapmmap_resizeinit_topinit_binsprepend_allocadd_segmentsys_allocrelease_unused_segmentsdlmunmapsys_trimtmalloc_largetmalloc_smallinternal_reallocdlfreedlmallocinternal_memaligniallocdlcallocdlreallocdlmemaligndlindependent_callocdlindependent_comallocdlvallocdlpvallocdlmalloc_trimdlmalloc_footprintdlmalloc_max_footprintdlmalloc_statsdlmalloc_usable_sizedlmalloptBbss.bssDdata.dataDrodata.rodata_xstat_lxstat_fxstat_xmknod.XAKk4DpzteyNlYN.mparams.XAKk4DpzteyNlYN.magic_init_mutexpthread_mutex_lock.XAKk4DpzteyNlYN._gm_pthread_mutex_initpthread_mutex_unlocksysconfabort__iobfprintferrnomemcpymemsetmmapmunmapffi_closure_allocffi_closure_free.rel.text.rel.debug_info.rel.debug_line.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnamesUE PEPj EEUE PEPj EEUE PEPj EEUjjEPE PEPjEEÐUEEEU ;PrEU@BU ;s EE!E@EEu E뻐EÐUEEE U;PrE U @BU;s E E@EEu E뻐EÐU   EXXXXjhu!Ejhjhjj jj tjj E EEH#ЃuH#ЃtEEÐUE EmEEmE;r!EUH#ЃuEE@E5E E!EEw$EðxdUu ;uEtEjPEEEE@1EEEEEEE@ U(+ЉUEE@u EE@؃EE@EEEU;PEU@BU;szEU;PtoE@tdE@uE@U+ЉUE@U‰EEU;Pr)EU@BU;sEU;Pt E@uE@EEEPhh EPhh EPh8h EtEjPÐU U HЃ#ЉUE;E jjhjEPj_MEEEu EE؃EEEE+EEEEEUEPUEPEE@EUDEU;Ps EUPEEEEUEU;vEUEEEEÐU$E @EE sEEU;r#U+UE;w E EE @EEEEUHЃ#ЉUEEEEEE+EEUEPEE@EUDEU;Ps EUPEU+U‰E܋EU܉EU;vEUEEEEÐUE u EE ؃EEEE EE E+EEEU PEUP UE PE E@(EPÐUEE s5EEED$EEUP EUPE@EE rÐUD]E u EE ؃EE EEEu EE؃EEEEE+EEEEEE+EEUEPEU;Pu5E@ EE؋EU؉P E؉E܋EUPU܃EPEU;PuAE@EE؋EU؉PE؉E܋EUPU܃EPEE܋U܉PtE@E@E܋E E@E؋E@ EԋEEЋE;EuUMЋR#ЋEPaEЍEEM؍D$;t EU;Pr9EЍEEMԍD$;t EU;PrE؋UԉP EԋU؉P3EE؋E؋@EԋE؋@ ;Et>E؋@E̋E؋@ EЋEU;PrE̋UЉP EЋỦPE؃E̋E̋@EЋEЃuE؃E̋E̋@EЋEЃt}EЃEȋEȋ@uEЃEȋEȋ@t7EȉE̋E̋@EЋEЃEȋEȋ@u݋EЃEȋEȋ@uɋEU;PrE@EԃE؋PE,E̋E̋U;Pu1E̋UЉPEЃu]EغHҋK#ʋEH6EU;Pr%Eԋ@;EuEԋUЉP EԋUЉPEЃEU;Pr|EЋUԉPE؋@EȋEȃt'EU;PrEЋUȉPEȋUЉPE؋@EċEăt'EU;PrEЋUĉPEċUЉPEE܉EEE܉EEPEPUEPEEUPE EE܋E܍EED$E؋E؉EԋEM@#ƒuEMH ʋEH$E؋U@;BrE؋@EE؋UPEԋUP EUԉPEU؉P EE܋EEЋEЃu EE=vEEЉE̋E-EȋE̋ME̋E-EċEEĉEȋE̋ME̋E-@EċEEĉEȋE̋ME̋UڋEDEċ]ċEċUHZEԋUԋE,E؋E܋UԉPEE܋UЉPE܋UЉPEM@#ƒuBEMH ʋEHE؋U܉PE܋U؉PE܋U܉P E܋U܉P)E؋@E̋Eԃu EEڍD؃EċEMEȋE̋@;Et{EЃE̍DEEȍEEȋE@tE@E?EU;Pr)EU܉PE܋ỦPE܋U܉P E܋U܉PoeZE̋@EEU;PrEEU@BEEEU+ЉUEu EE؃EEEEEEEU;sEEEE؋E؉E܋E܉EԋEԃEЋEEE̋ẺEEE(PE PEP UEԉPUMЋAAAA EU EUEtEEEEEUU@EUEUD;tEEEE!EU@EEEEEEUЉEȃEE@E@EċE;Es EEʐE;EtEEE+EEEEEEPEPUEPEEUPE EEEEED$EEEEM@#ƒuEMH ʋEH#EU@;BrE@EEUPEUP EUPEUP EEEEEu EE=vEEEE-EEMEE-EEEEEMEE-@EEEEEMEUڋEDE]EUHZEUE,EEUPEEUPEUPEM@#ƒuBEMH ʋEHEUPEUPEUP EUP)E@EEu EEڍD؃EEMEE@;Et{EЃEDEEEEE@tE@E?EU;Pr)EUPEUPEUP EUPoeZE@EEU;PrE@E܋E@ EE;rE܋UP EU܉PEE܋E܋@EEuEE܋E܋@EEt}EE؋E؋@uEE؋E؋@t7E؉E܋E܋@EEE؋E؋@u݋EE؋E؋@uɋE;rE@EE@,E܋E܋U;Pu0E܋UPEuEHҡ#£7E;r%E@;EuEUP EUPEE;r|EUPE@E؋E؃t'E;rEU؉PE؋UPE@EԋEԃt'E;rEUԉPEԋUPEE@u6EEPEPUEPEEUP {E;ElE@ZE@E;ui E EEUEPE;uE;vjhvE;u=EEEUEPEEUPE@EEEEE E@EE@ EEEE;EuMЋ#ЉbEEU$;t E;r9EEU$;t E;rEUP EUP/EEE@EE@ ;Et>E@EE@ EE;rEUP EUPEEE@EEuEEE@EEt}EE܋E܋@uEE܋E܋@t7E܉EE@EEE܋E܋@u݋EE܋E܋@uɋE;rE@EE@,EEU;Pu0EUPEuEHҡ#£7E;r%E@;EuEUP EUPEE;r|EUPE@E܋E܃t'E;rEU܉PE܋UPE@E؋E؃t'E;rEU؉PE؋UPUEPEEUPE;uEh)EPEPUEPEEUPE EEEE$EEEM#ЃuM Љ#E@;rE@EEUPEUP EUPEUP EEEEEu EE=vEEEE-E܋EMEE-E؋EE؉E܋EMEE-@E؋EE؉E܋EMEUڋEDE؋]؋E؋UHZEE,EEUPEEUPEUPM#ЃuAM ЉEUPEUPEUP EUP(E@EEu EEڍD؃E؋EME܋E@;Et{EЃEDEԋE܍EE܋Eԋ@tEԋ@E?E;r)EԋUPEUPEUP EUPoeZE@EԋE;rinit_mparams OU VCdCdCs change_mparam U param_number value  val internal_malloc_stats, U  m, GGmaxfp. fp/ used0 \kks<3 q9 mmap_allocQ DU   mQ nbQ  mmsizeR /8;8;8mmT W8c8c8offsetV psizeW pX void mmap_resizel U ml oldpl  nbl oldsizem |offsetu oldmmsizev newmmsizew cpy newp| psize} init_top %U` m p  psize offset init_bins |U m i 6zEkEkbin ]sbinptrprepend_alloc )U  m newbase  oldbase nb p oldfirst psize q qsize  # S # S tsize X X c c dsize      nsize   q  q F B I x x TP ~ XP R    F   RP"    CP"    H'     ( ( C0 C1    I B F   TP  H' I  eX  e e e e eY N K T K ////==C" F tchunkptrm add_segment U m tbase  tsize  mmapped old_top oldsp< old_end ssize rawsp offset asp csp sp ss< tnext p nfences LHHnextp LXXq psize tn AAI B F HHTP NH' I NX WllY N K KT K hhC" llF Csys_alloc U j m nb  tbase tsize! mmap_flag " DDDmem ( D L L br? ss<@ asizeA `baseE ` l l ltttesizeb endd  oooreqz rsize{ 0o8o8omp} ottasize br end ssize 4 C|C|&|L|L|mn   sp<  D D  oldbase  ++rsize p r release_unused_segments "U! m released pred< sp< """base size next< """p psize ="f"f"tp lXP R F RP" CP" H' %111<<C0 C1 " " " "H' I  X  $ $ < < Y N K !"\!"\!"T K !"!|"!|"!|"! "! "C" $"|"$"|"F sys_trim n$U# m pad  released "I$"I$"I$"!$"!$"!$unitextrasp<+##+##+##+##+#x#+#x#+#x#K#x#K#x#newsize|##|########old_br(######rel_br*new_br+tmalloc_largeK-U ) mKnbK vLrsizeMtNidxO$U%XP$U%$U%$U%$U%$U%YPNPKPU%4&q%4&q%4&sizebitsTrstU%4&%-&%-&rtWtremX4&O'L&O'L&O'leftbitsNk{&O'&O'&O'imleastbitNn&?'YoKoNoO''W''W''tremu'-'-'-'-'-'-r'-'-'-'*XPR'('5('5(F<((<((RP"<((p((p((CP"(*(*(*H'})*)*)*)*) *) *C0C1*-T*-T*-x*-*!+*!+IBF(+-(+-TP.+-H'I.++X7++L++L++d++d++YNK+,-,-,-TK,-,-,-,-,H-,H-C"L--L--Ftmalloc_small2U 2- mnb tvrsizeileastbitN-.YKN.;/././trem;/2J/2J/2rS/2_/2_/2_/1XPRh/a0s//s//F/a0/a0RP"/a0/a0/a0CP"a01m01m01H'010101011111C0C112121212DVS122222DV 22IBFinternal_realloch6U / m oldmem bytes3\6E3\6E3\6oldpoldsizenextnewpextra q3|53A53A5nb3A54A54A54444rsize+44344344remainder4A54A54A54A5newsizenewtopsizenewtop5\65\65\6newmem 5T65T65T6ocinternal_memalign9U 1 malignment bytes666666a 697979nbreqmemO79[79[79leader trailer p787878br&pos*newp,leadsize-newsize.898989size>999999remainder_size@remainderAialloc^'=U33 mZn_elements[ 3sizes\opts]3chunks^element_sizehcontents_sizeiarray_sizejmem kplremainder_sizemmarray3narray_chunkowas_enabled psizeqir$<Y<,<Y<,<Y<array_chunk_size dlmalloc3CU 7bytes9=$Cr=$Cr=$Cmem nbr=A=xA=xAidxsmallbitsN=xA=>=>bp=M>F>xA>xA>xA>xA>xA>LA>LAbprrsizeileftbitsNleastbitN>?YKN?@F@=AH@=AH@=Au@=ADVS }@-A@-A@-ADV @-AI B F ABABABrsize8p9A{BA5BA5Br;8B{B8B{BdvsABBBBBBBBrsizeLpMrNdlfreea>OU|? memaIC9OUC9OUC9Opi^C9OC9OC9OCOCOCOpsizevnextwCGCGCGprevsizeyCG4DG4DGprevLDG[DG[DG[DGjDMGjDMGjDMGyDEyDEFBI EMG EMGTP&EMGXPR/E)F:EqE:EqEFxE)FxE)FRP"xE)FE)FE)FCP")FMG5FMG5FMGH'FMGFMGFMGFMGFEGFEGC0C1GOGOGOGKGKGKGKGDHGDHtsizeDHKDHKOHHOHHdsizeHKHKnsizeHKHQIHQIFBIXIKXIKTP^IKXPRgIaJrIIrIIFIaJIaJRP"IaJIaJIaJCP"aJKmJKmJKH'JKJKJKJKK}KK}KC0C1KOKLKLIBFLOLOTPLOH'ILeMXLeMLeMLeMLeMLeMYNKMOMOMOTK+NO+N O+N O+N O9NN9NNC"N ON OFdlcallocOU ?n_elementselem_size mem reqdlrealloc-PU i@ oldmembytes O(PP(PP(Pm dlmemalignSPU @alignmentbytes dlindependent_callocPU33An_elementselem_size 3chunksszdlindependent_comallocPU3An_elements3sizes 3chunksdlvallocPU Abytespageszdlpvalloc7QU 4Bbytespageszdlmalloc_trimQUBpadresult dlmalloc_footprintQUdlmalloc_max_footprintQUdlmalloc_statsRUdlmalloc_usable_size#RUdC mem#&RR.RR.RRp%dlmallopt,RUCparam_number,value, dlmmapRU 6D startlength protflagsfd*offsetdlmunmapdSUD startlength seg<code  SLS&SLS&SLSret ffi_closure_alloc+SU jEsize*3code* ptr ,SSSSSSseg<5ffi_closure_freeCSUE ptrB_gm_  malloc_paramsDF magic# page_size# granularity# mmap_threshold# trim_threshold# default_mflags #mparamsEabortgetpagesizes2FfFgetpagesizes2FfFmunmapFcaddr_tmmapFGFpthread_mutex_unlockBGGpthread_mutex_lockhGG _pthread_mutexattrG __pthread_mutexattrp #hGGpthread_mutex_initGGG __FILE H _cnt# _ptrG# _baseG# _flag# _magic# __orientation# __ionolock#  __seekable#  __extendedfd#  __xf_nocheck#  __filler#  GHfprintfHHHsysconfII_xmknod;II I@I_lxstatoI;IEItI_xstatIoIyI_fxstatIImemset I  Imemcpy  I src/usr/include/sys/usr/include/isoclosures.cstat_impl.hstat.htypes.htime_impl.hint_types.hdlmalloc.cstddef_iso.hstdio_impl.h &; F[ f         ( 9 D H Vdn x       > C J V\ a d l x      qG N U \ k v      # 1 B S}x     / ; W c           -8? Vb m |           , 7 @ n           # 6E Y k~z      # > G X c ~         ! <E X g n |          J V b   ' . 9 D H LX ^ g p      / 7 DL S         0T Z `l t             0 8 T \ b h ot            " 4 C X d    & 0 L_     " DO X c {       + F O g s           1 = f l w        "" "a"!" "" " " " " # +# +# +#K# W#r# |## # ## # # # # ## # $ !$!$ 7$?$ I$i$ y$$ $U% q% % %% % % % % % %  & & & &  & -& 4&L& {& & & ?' O'W' f' n' t' z' 'z' ' ' ' ' * * T* `* x* - -- - -- . . . . . / / /|;/J/ S/ _/ 1 1 1 1 1 2 22 2 22 2 3 E3 N3 Z3 c3 j3 q33 3 3 4 4 %4 +4 34 <4 n4 4 44 4 4 4 5 )5 25 ;5 D5I5 m5 |55 5 5 555 5 6 F6 T6 \6c6 v6~6 6 6 6 6 6 6 66 6 7*7 >7 O7 [7 b7 i7 r7 7 7 7 8 8 8 -8 I8 X8 h88 8 8 88 9 9 9 &9 X9 9 99 9 9 9 9 99 :: : $: *: 4:<: P: W: :: : :: : : ; *;3;B; W; k; s; ; ; ; ; ; < < $<,< 5< >< G< S< Y<`< o< z< < < < < < << <s<<= "= 9=r=== = = = = = = M> |> > >> >> > ? ? ? @ @ @ H@ T@ ]@ u@ =A FA LArA |AA A A A AA A A A  B B )B 8B@B JB TB {B B BB B B B B B BBCC $C+C IC UC ^C C C C C C C C C  D !D .D 4D=D FD LD [D jD PG ^G fG G GGG G G G G H H H #H .H =H DH OH dH lH H HH H K K K K KK O OO 9OFO!MO UO _O |O O O O O O O!O P  P(P 6P!NP fP!lP P P!P P!P P P Q" Q Q 2Q FQ"MQ Q Q Q Q Q"Q Q"Q R"R &R".R 7R ER R R R"R RR R S&S 9S AS LS_S vS~S S S S S SS SS  DD%. : ; @ ' ID I: ;  $> &III: I  !I/  :  I8  :   : 4I : ; . : ;@ ' ID I: ; I  :  . : ;@ ' D D D . : ;@ ' ID . : ;@ ' D .?  : ;@ ' ID .?  : ;@ ' D .? < ' D .? < ' ID I I8 .? < ' ID 9JDffi_closure_allocjEffi_closure_freeJBstatlstatDfstatmknodisegment_holding has_segment_link. init_mparams change_mparam internal_malloc_stats mmap_alloc mmap_resizeinit_top`init_binsprepend_alloc,add_segmentsys_allocjrelease_unused_segments!sys_trim#tmalloc_large)tmalloc_small2-internal_realloc/internal_memalign1ialloc3dlmalloc7dlfree|?dlcalloc?dlrealloci@dlmemalign@dlindependent_calloc3Adlindependent_comallocAdlvallocAdlpvalloc4Bdlmalloc_trimBdlmalloc_footprintBdlmalloc_max_footprintBdlmalloc_statsBdlmalloc_usable_sizedCdlmalloptCdlmmap6Ddlmunmap6Jdev_tino_tmode_tnlink_tuid_t gid_t*off_t6time_tCtimespecstimestruc_tblksize_tblkcnt_tstatuint16_t uint8_tuint32_tOupad64_t^_pthread_mutex3pthread_mutex_tsize_tptrdiff_tmalloc_segment<msegmentptrNbinmap_tbmalloc_chunkmchunkptrbindex_tmalloc_tree_chunkm tbinptr flag_t msegment malloc_state mstatesbinptrtchunkptrEmalloc_paramsFcaddr_thG_pthread_mutexattrG__FILE8JImagic_init_mutexE_gm_DFmparams  @ `(]]PP$4/R16PDBK0LUc0oyRt"p$\ -2@C 0=p6:'@OOM 0P#`P1,P+CP+LQ7V@Q}dQwQR RpR      $FYopS_S;1<Q=y>W?f?p?z?@A??BC?B@DE?EE ????,?2??Fh?}????7A1GH1GH1GHD? ?????m F F} F Fe F F Fe FF FkFFFaFF??????? ????$?y?~?mFF?*BIFF!FyFFF"Fu"F"?1(F(Fy)F)F *F*F*FA-F-F-F/F]0F0FE1F}1F1F}2F2F2I3?53AE5Ff5D5D?6J6Is7?7A9D;?;A<K=D:=?N=B]=Bb=A=B=B>B>B->BI>F>B?B?B?B?B?Fv@B@B@B@B@B@B@BAF1AB9ABMAB[ABABABABABABAB BB9BBBBBLBBBBBBBBBBBBBBBBCBCBCD_C?sCBCBCACB"DB*DBQDB`DBDBDBDBDBDBDBEFQEBmEFFB%FF>FBqFBxFBFBFFFBFB GF#GBAGFIGFbGBGBGBGBGBGB HBHBHB(HB1HBIHBPHBXHB]HBhHBHBHBIB IB#IB0IBMIFIBIFHJB]JFvJBJBJBJBJFJB#KBAKF[KByKFKFKBKBLB!LB8LB@LBPLBeLFkMBMBMBMByNBNFNBNBOFOFOB-OB2ODOKPB?PB}PBPBP? Q?NQ?bQBqQBvQAQBQBQBQDQBQBRBRLRB/SMUSMSB5>6KO NRe@~  @  D U Y ^ b g k     # ' , 0 5 9 |              6 : ? C H L d h m q v z   :>CGLP os $)-26;?DHcglpuy  8<AE]afjos*.37<@} SW\`ei=A15:>CG Z^cglp-1,059>B_chlquz~ IMRV[_}*.37<@EINRW[`dimrv!%DHMQVZ -16:RV[_dh  % ) . 2 7 ; d h                 '!+!0!4!9!=!B!F!K!O!T!X!q!u!z!~!!!"" """""""'"+"0"4"w"{"""""""""""""""""""""""## # #)#-#2#6#;#?###$$0$4$9$=$B$F$K$O$T$X$$$$$$$$$$$$$*%.%3%7%<%@%^%b%g%k%p%t%%%%%%%%&&!&&&*&/&3&8&<&A&E&J&N&e&i&n&r&w&{&&&&&&&&&&&&&'' ''''6':'?'C'H'L'c'g'l'p'u'y'~''''''''''''''''''7(;(@(D(\(`((((((((((((( )))))#)L)P)U)Y)^)b)g)k)p)t)y)}))))))){************++++$+(+-+1+6+:+d+h+m+q+v+z++++++++++++++++,,,",&,+,/,4,8,=,A,F,J,,,,,,,,,,,,,,,,,H-L-------...".'.+.C.G.L.P.U.Y.^.b.g.k...............8/ >2>6>M>Q>V>Z>_>c>h>l>q>u>>>>>>>>>>?? ?????"?&???C?H?L???@@9@=@B@F@K@O@y@ }@@!@OA"SAA#AA$AGB%KBB&BB'BB(BC)C4C8C=CACFCJCsC*wCC CDDHDDDDDDDDND8EFNV^fnv~  (08@HPX`jt (0:GN\dlt| &.6>HPX`jrz&0:BJRZblt| $,6>FNX`hpx    " * 4 > F N V ^ f n v ~                    " * 2 : D L V ^ f n x                     * 4 < I P ^ f n v ~                    & 0 = D R Z b j r z                    $ . 6 @ H R _ f t |                "*2:BLT\dlt~ $,4<DLV`hpx &.6>FNV^fnv~ (08@JW^lt|"*2:BJT\dlv~ $,6>FNX`hrz "*2<DLT\dlt| "*2:DLV^fnv~ $,4<DNV^fnv $,4<DLT\dlv~ "*2:BJR\dlt| )0>FPZg n|!"#$$,9%@NV^fn{&'()#**8E LXelxNO 44444r SXXX"XR+X4[?[JK We=u:<;   <%      4  I ^ ffi64.o/ 1305078643 0 0 100644 1940 ` ELF4( .strtab.text.bss.data.rodata.comment.debug_loc.debug_info.debug_line.debug_abbrev.symtabffi64.cBbss.bssDdata.dataDrodata.rodata.rel.debug_info%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21Bsrc/x86/ffi64.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/x86/ffi64.o src/x86/ffi64.c -W0,-xp.XAKk4DpzteyNFhN.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyNFhN.;backend;raw;cd;DBG_GEN 5.2.7)# src/x86ffi64.c DD%dlmnwx   A 4 "0+ 6 FBR-N\ x  unix64.o/ 1305078643 0 0 100644 404 ` ELF4(.strtab.text.comment.symtabas: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21 !4" VVC0ffi.o/ 1305078643 0 0 100644 10908 ` ELFT'4(.strtab.text.bss.data.rodata.comment.debug_loc.debug_info.debug_line.debug_abbrev.debug_pubnames.debug_funcnames.debug_typenames.symtabffi.cffi_prep_incoming_args_SYSVffi_prep_args_rawBbss.bssDdata.dataDrodata.rodataffi_prep_argsmemcpyffi_prep_cif_machdepffi_callffi_call_SYSVffi_closure_SYSV_innerffi_prep_closure_locffi_closure_SYSVffi_prep_raw_closure_locffi_closure_raw_SYSVffi_raw_call.rel.text.rel.debug_info.rel.debug_line.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenamesUEEE @@ uE U@BEEE @EE @@EE @@EE3Et EH@EE@@EEEE@U@BE@U@BE@U@BpE@U@B\E@U@BHE@U@B4E@U@B E@@w$UEPBPEP EEEEEEHEEEEEEì$$U,E@ PEP0E@ "E@E@ @ w$EEU EEEEEu&E@ uE@ @+ĉE EE0MUE PEPBPAPEPhE@tÐU E@ EE@+ĉEjjEPEPE PEP>MU Ejj@PEPBPEPAЃE@EEÐUEEE@ uEU @BEEEEE@EE@EEt[Et EH@EE@@EEUPEEEEEEHEEEEEEuÐUE @uSEEEEEEU +ЉU츸UBEUPUBEUPEE E%EU P EUPEUPEEÐUE @tEE @HEE|EHEE}EEEEEEU +ЉU踸UBEUPUBEUPEEEU P EUPEUPEEÐUU E @@PBPEP ÐUEEEEEEEu(E@ @ uE@ @+ĉEEE0MUE PEPBPAPEPhE@t%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMI%Z%%M% %I% %E% SMIacomp: Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-03 2009/09/21 src/x86/ffi.c /var/tmp/libffi-3.0.9 /opt/sunstudio12.1/prod/bin/cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -g -D__i386__ -c -o src/x86/ffi.o src/x86/ffi.c -W0,-xp.XAKk4DpzteyN1qN.Xa;g;R=Sun C 5.10 SunOS_i386 Patch 142363-01 2009/07/15;G=.XAKk4DpzteyN1qN.;backend;raw;cd;DBG_GEN 5.2.7ffi_prep_args.U stack-ecif- iu/p_argv0argp 1p_arg28\m\mzGcharffi_abig FFI_FIRST_ABI FFI_SYSV FFI_UNIX64 FFI_DEFAULT_ABI FFI_LAST_ABI ffi_abiunsigned usize_tunsigned short _ffi_type  size# alignment# type# elements# ffi_type p abig# nargsu# arg_types# rtype # bytesu# flagsu# ffi_cifpvoid  cif~# rvalue# avalue# extended_cifffi_prep_cif_machdepUM~cifM FFI_OK FFI_BAD_TYPEDEF FFI_BAD_ABI ffi_statusffi_callU~cif fn  rvalue avalue ecifffi_closure_SYSV_innerXUuoclosurerespp argscif~arg_arealong o   trampw# cif~# fun# user_data# ffi_closureffi_prep_incoming_args_SYSV U stackrvalue avalue~cifiup_argvargp p_argzffi_prep_closure_locUM closure~cif &funuser_datacodeloc!r!r!c__tramp<+__funu+__ctxu+__disu+& unsigned char+ffi_prep_raw_closure_locNiUMD o closureI~cifJ  funKuser_dataLcodelocMi O3__tramp<a__funua__ctxua__disua U o signed long U ffi_sargunsigned long s ffi_argfloat o sintd # uint # flt # data # ptr#    Y trampD # cif~# fun # user_data#  ffi_raw_closureY   t intffi_prep_args_rawmU  stacklecifl ffi_raw_call2U{ ~cif~ fn rvalue fake_avalueecifavalue{ ffi_raw  ffi_closure_raw_SYSV  ffi_closure_SYSV      u ffi_call_SYSVC   uu  C memcpyq H u__builtin_allocaut src/x86./include/usr/include/isoffi.cffi_common.hffi.hffitarget.hstddef_iso.h3  & /8 P \g r ~          (dD$[ dm    *   V\ bu   X*  % J S fl w    `$ !t      B K T ] d s       r0 DD%.?  : ; @ ' D I: ;  4I : ;   $> I :  ( I:  :  I8  : .?  : ; @ ' ID  : .?  : ;@ ' D I: ; 4I : ; ' D .?  : ;@ ' ID I !I/ ' D I. : ;@ ' D  : .? < ' D &I.? < ' ID .? < ' ID  ?ffi_prep_argsffi_prep_cif_machdep^ffi_callffi_closure_SYSV_innerffi_prep_closure_locAffi_prep_raw_closure_loc ffi_raw_callD ffi_prep_incoming_args_SYSV ffi_prep_args_raw ffi_abigffi_abisize_t_ffi_typeffi_typepffi_cifextended_cifMffi_statusffi_closured ffi_sarg ffi_arg  Y ffi_raw_closure ffi_raw`p"     V#P,:xQfw=T"&*.26:>BFJ) ;RVmq&*`d     )1;CMU_gqy )6=IQ[cmw %-7?IS]gq{ %-:AMZamu}   4 P2"+S 6S BN\l0H}x\ GNWaoxx}j$m<\4 P|o`#pC,`  07070100188e58000041ed0000000000000000000000034dc9ebf100000000000000b600010002ffffffffffffffff0000002000000000root/usr/local/lib/libffi-3.0.907070100188e59000041ed0000000000000000000000024dc9ebf100000000000000b600010002ffffffffffffffff0000002800000000root/usr/local/lib/libffi-3.0.9/include07070100188e5b000081a40000000000000000000000014dc9eb7300000da8000000b600010002ffffffffffffffff0000003400000000root/usr/local/lib/libffi-3.0.9/include/ffitarget.h/* -----------------------------------------------------------------*-C-*- ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. Copyright (C) 2008 Free Software Foundation, Inc. Target configuration macros for x86 and x86-64. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ``Software''), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------- */ #ifndef LIBFFI_TARGET_H #define LIBFFI_TARGET_H /* ---- System specific configurations ----------------------------------- */ #if defined (X86_64) && defined (__i386__) #undef X86_64 #define X86 #endif #ifdef X86_WIN64 #define FFI_SIZEOF_ARG 8 #define USE_BUILTIN_FFS 0 // not yet implemented in mingw-64 #endif /* ---- Generic type definitions ----------------------------------------- */ #ifndef LIBFFI_ASM #ifdef X86_WIN64 #ifdef _MSC_VER typedef unsigned __int64 ffi_arg; typedef __int64 ffi_sarg; #else typedef unsigned long long ffi_arg; typedef long long ffi_sarg; #endif #else typedef unsigned long ffi_arg; typedef signed long ffi_sarg; #endif typedef enum ffi_abi { FFI_FIRST_ABI = 0, /* ---- Intel x86 Win32 ---------- */ #ifdef X86_WIN32 FFI_SYSV, FFI_STDCALL, /* TODO: Add fastcall support for the sake of completeness */ FFI_DEFAULT_ABI = FFI_SYSV, #endif #ifdef X86_WIN64 FFI_WIN64, FFI_DEFAULT_ABI = FFI_WIN64, #else /* ---- Intel x86 and AMD x86-64 - */ #if !defined(X86_WIN32) && (defined(__i386__) || defined(__x86_64__)) FFI_SYSV, FFI_UNIX64, /* Unix variants all use the same ABI for x86-64 */ #ifdef __i386__ FFI_DEFAULT_ABI = FFI_SYSV, #else FFI_DEFAULT_ABI = FFI_UNIX64, #endif #endif #endif /* X86_WIN64 */ FFI_LAST_ABI = FFI_DEFAULT_ABI + 1 } ffi_abi; #endif /* ---- Definitions for closures ----------------------------------------- */ #define FFI_CLOSURES 1 #define FFI_TYPE_SMALL_STRUCT_1B (FFI_TYPE_LAST + 1) #define FFI_TYPE_SMALL_STRUCT_2B (FFI_TYPE_LAST + 2) #define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3) #if defined (X86_64) || (defined (__x86_64__) && defined (X86_DARWIN)) #define FFI_TRAMPOLINE_SIZE 24 #define FFI_NATIVE_RAW_API 0 #else #ifdef X86_WIN32 #define FFI_TRAMPOLINE_SIZE 13 #else #ifdef X86_WIN64 #define FFI_TRAMPOLINE_SIZE 29 #define FFI_NATIVE_RAW_API 0 #define FFI_NO_RAW_API 1 #else #define FFI_TRAMPOLINE_SIZE 10 #endif #endif #ifndef X86_WIN64 #define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */ #endif #endif #endif 07070100188e5a000081a40000000000000000000000014dc9eb7300002a86000000b600010002ffffffffffffffff0000002e00000000root/usr/local/lib/libffi-3.0.9/include/ffi.h/* -----------------------------------------------------------------*-C-*- libffi 3.0.9 - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ``Software''), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------- */ /* ------------------------------------------------------------------- The basic API is described in the README file. The raw API is designed to bypass some of the argument packing and unpacking on architectures for which it can be avoided. The closure API allows interpreted functions to be packaged up inside a C function pointer, so that they can be called as C functions, with no understanding on the client side that they are interpreted. It can also be used in other cases in which it is necessary to package up a user specified parameter and a function pointer as a single function pointer. The closure API must be implemented in order to get its functionality, e.g. for use by gij. Routines are provided to emulate the raw API if the underlying platform doesn't allow faster implementation. More details on the raw and cloure API can be found in: http://gcc.gnu.org/ml/java/1999-q3/msg00138.html and http://gcc.gnu.org/ml/java/1999-q3/msg00174.html -------------------------------------------------------------------- */ #ifndef LIBFFI_H #define LIBFFI_H #ifdef __cplusplus extern "C" { #endif /* Specify which architecture libffi is configured for. */ #define X86_64 /* ---- System configuration information --------------------------------- */ #include #ifndef LIBFFI_ASM #ifdef _MSC_VER #define __attribute__(X) #endif #include #include /* LONG_LONG_MAX is not always defined (not if STRICT_ANSI, for example). But we can find it either under the correct ANSI name, or under GNU C's internal name. */ #ifdef LONG_LONG_MAX # define FFI_LONG_LONG_MAX LONG_LONG_MAX #else # ifdef LLONG_MAX # define FFI_LONG_LONG_MAX LLONG_MAX # else # ifdef __GNUC__ # define FFI_LONG_LONG_MAX __LONG_LONG_MAX__ # endif # endif #endif /* The closure code assumes that this works on pointers, i.e. a size_t */ /* can hold a pointer. */ typedef struct _ffi_type { size_t size; unsigned short alignment; unsigned short type; struct _ffi_type **elements; } ffi_type; #ifndef LIBFFI_HIDE_BASIC_TYPES #if SCHAR_MAX == 127 # define ffi_type_uchar ffi_type_uint8 # define ffi_type_schar ffi_type_sint8 #else #error "char size not supported" #endif #if SHRT_MAX == 32767 # define ffi_type_ushort ffi_type_uint16 # define ffi_type_sshort ffi_type_sint16 #elif SHRT_MAX == 2147483647 # define ffi_type_ushort ffi_type_uint32 # define ffi_type_sshort ffi_type_sint32 #else #error "short size not supported" #endif #if INT_MAX == 32767 # define ffi_type_uint ffi_type_uint16 # define ffi_type_sint ffi_type_sint16 #elif INT_MAX == 2147483647 # define ffi_type_uint ffi_type_uint32 # define ffi_type_sint ffi_type_sint32 #elif INT_MAX == 9223372036854775807 # define ffi_type_uint ffi_type_uint64 # define ffi_type_sint ffi_type_sint64 #else #error "int size not supported" #endif #if LONG_MAX == 2147483647 # if FFI_LONG_LONG_MAX != 9223372036854775807 #error "no 64-bit data type supported" # endif #elif LONG_MAX != 9223372036854775807 #error "long size not supported" #endif #if LONG_MAX == 2147483647 # define ffi_type_ulong ffi_type_uint32 # define ffi_type_slong ffi_type_sint32 #elif LONG_MAX == 9223372036854775807 # define ffi_type_ulong ffi_type_uint64 # define ffi_type_slong ffi_type_sint64 #else #error "long size not supported" #endif /* These are defined in types.c */ extern ffi_type ffi_type_void; extern ffi_type ffi_type_uint8; extern ffi_type ffi_type_sint8; extern ffi_type ffi_type_uint16; extern ffi_type ffi_type_sint16; extern ffi_type ffi_type_uint32; extern ffi_type ffi_type_sint32; extern ffi_type ffi_type_uint64; extern ffi_type ffi_type_sint64; extern ffi_type ffi_type_float; extern ffi_type ffi_type_double; extern ffi_type ffi_type_pointer; #if 1 extern ffi_type ffi_type_longdouble; #else #define ffi_type_longdouble ffi_type_double #endif #endif /* LIBFFI_HIDE_BASIC_TYPES */ typedef enum { FFI_OK = 0, FFI_BAD_TYPEDEF, FFI_BAD_ABI } ffi_status; typedef unsigned FFI_TYPE; typedef struct { ffi_abi abi; unsigned nargs; ffi_type **arg_types; ffi_type *rtype; unsigned bytes; unsigned flags; #ifdef FFI_EXTRA_CIF_FIELDS FFI_EXTRA_CIF_FIELDS; #endif } ffi_cif; /* ---- Definitions for the raw API -------------------------------------- */ #ifndef FFI_SIZEOF_ARG # if LONG_MAX == 2147483647 # define FFI_SIZEOF_ARG 4 # elif LONG_MAX == 9223372036854775807 # define FFI_SIZEOF_ARG 8 # endif #endif #ifndef FFI_SIZEOF_JAVA_RAW # define FFI_SIZEOF_JAVA_RAW FFI_SIZEOF_ARG #endif typedef union { ffi_sarg sint; ffi_arg uint; float flt; char data[FFI_SIZEOF_ARG]; void* ptr; } ffi_raw; #if FFI_SIZEOF_JAVA_RAW == 4 && FFI_SIZEOF_ARG == 8 /* This is a special case for mips64/n32 ABI (and perhaps others) where sizeof(void *) is 4 and FFI_SIZEOF_ARG is 8. */ typedef union { signed int sint; unsigned int uint; float flt; char data[FFI_SIZEOF_JAVA_RAW]; void* ptr; } ffi_java_raw; #else typedef ffi_raw ffi_java_raw; #endif void ffi_raw_call (ffi_cif *cif, void (*fn)(void), void *rvalue, ffi_raw *avalue); void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw); void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args); size_t ffi_raw_size (ffi_cif *cif); /* This is analogous to the raw API, except it uses Java parameter */ /* packing, even on 64-bit machines. I.e. on 64-bit machines */ /* longs and doubles are followed by an empty 64-bit word. */ void ffi_java_raw_call (ffi_cif *cif, void (*fn)(void), void *rvalue, ffi_java_raw *avalue); void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_java_raw *raw); void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_java_raw *raw, void **args); size_t ffi_java_raw_size (ffi_cif *cif); /* ---- Definitions for closures ----------------------------------------- */ #if FFI_CLOSURES typedef struct { char tramp[FFI_TRAMPOLINE_SIZE]; ffi_cif *cif; void (*fun)(ffi_cif*,void*,void**,void*); void *user_data; #ifdef __GNUC__ } ffi_closure __attribute__((aligned (8))); #else } ffi_closure; #endif void *ffi_closure_alloc (size_t size, void **code); void ffi_closure_free (void *); ffi_status ffi_prep_closure (ffi_closure*, ffi_cif *, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data); ffi_status ffi_prep_closure_loc (ffi_closure*, ffi_cif *, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void*codeloc); typedef struct { char tramp[FFI_TRAMPOLINE_SIZE]; ffi_cif *cif; #if !FFI_NATIVE_RAW_API /* if this is enabled, then a raw closure has the same layout as a regular closure. We use this to install an intermediate handler to do the transaltion, void** -> ffi_raw*. */ void (*translate_args)(ffi_cif*,void*,void**,void*); void *this_closure; #endif void (*fun)(ffi_cif*,void*,ffi_raw*,void*); void *user_data; } ffi_raw_closure; typedef struct { char tramp[FFI_TRAMPOLINE_SIZE]; ffi_cif *cif; #if !FFI_NATIVE_RAW_API /* if this is enabled, then a raw closure has the same layout as a regular closure. We use this to install an intermediate handler to do the transaltion, void** -> ffi_raw*. */ void (*translate_args)(ffi_cif*,void*,void**,void*); void *this_closure; #endif void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*); void *user_data; } ffi_java_raw_closure; ffi_status ffi_prep_raw_closure (ffi_raw_closure*, ffi_cif *cif, void (*fun)(ffi_cif*,void*,ffi_raw*,void*), void *user_data); ffi_status ffi_prep_raw_closure_loc (ffi_raw_closure*, ffi_cif *cif, void (*fun)(ffi_cif*,void*,ffi_raw*,void*), void *user_data, void *codeloc); ffi_status ffi_prep_java_raw_closure (ffi_java_raw_closure*, ffi_cif *cif, void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*), void *user_data); ffi_status ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*, ffi_cif *cif, void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*), void *user_data, void *codeloc); #endif /* FFI_CLOSURES */ /* ---- Public interface definition -------------------------------------- */ ffi_status ffi_prep_cif(ffi_cif *cif, ffi_abi abi, unsigned int nargs, ffi_type *rtype, ffi_type **atypes); void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue); /* Useful for eliminating compiler warnings */ #define FFI_FN(f) ((void (*)(void))f) /* ---- Definitions shared with assembly code ---------------------------- */ #endif /* If these change, update src/mips/ffitarget.h. */ #define FFI_TYPE_VOID 0 #define FFI_TYPE_INT 1 #define FFI_TYPE_FLOAT 2 #define FFI_TYPE_DOUBLE 3 #if 1 #define FFI_TYPE_LONGDOUBLE 4 #else #define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE #endif #define FFI_TYPE_UINT8 5 #define FFI_TYPE_SINT8 6 #define FFI_TYPE_UINT16 7 #define FFI_TYPE_SINT16 8 #define FFI_TYPE_UINT32 9 #define FFI_TYPE_SINT32 10 #define FFI_TYPE_UINT64 11 #define FFI_TYPE_SINT64 12 #define FFI_TYPE_STRUCT 13 #define FFI_TYPE_POINTER 14 /* This should always refer to the last type code (for sanity checks) */ #define FFI_TYPE_LAST FFI_TYPE_POINTER #ifdef __cplusplus } #endif #endif 07070100188e5d000081ed0000000000000000000000014dc9eb73000003a3000000b600010002ffffffffffffffff0000001d00000000root/usr/local/lib/libffi.la# libffi.la - a libtool library file # Generated by ltmain.sh (GNU libtool) 2.2.6 # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libffi.so.5' # Names of this library. library_names='libffi.so.5.0.10 libffi.so.5 libffi.so' # The name of the static archive. old_library='libffi.a' # Linker flags that can not go in dependency_libs. inherited_linker_flags='' # Libraries that this one depends upon. dependency_libs=' -L/usr/local/lib' # Names of additional weak libraries provided by this library weak_library_names='' # Version information for libffi. current=5 age=0 revision=10 # Is this an already installed library? installed=yes # Should we warn about portability when linking against -modules? shouldnotlink=no # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/local/lib' 07070100188e61000041ed0000000000000000000000044dc9ebf100000000000000b600010002ffffffffffffffff0000001500000000root/usr/local/share07070100188e62000041ed0000000000000000000000024dc9ebf100000000000000b600010002ffffffffffffffff0000001a00000000root/usr/local/share/info07070100188e64000081a40000000000000000000000014dc9eb740000486d000000b600010002ffffffffffffffff0000002600000000root/usr/local/share/info/libffi.infoThis is ../libffi/doc/libffi.info, produced by makeinfo version 4.13 from ../libffi/doc/libffi.texi. This manual is for Libffi, a portable foreign-function interface library. Copyright (C) 2008 Red Hat, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. A copy of the license is included in the section entitled "GNU General Public License". INFO-DIR-SECTION Development START-INFO-DIR-ENTRY * libffi: (libffi). Portable foreign-function interface library. END-INFO-DIR-ENTRY  File: libffi.info, Node: Top, Next: Introduction, Up: (dir) libffi ****** This manual is for Libffi, a portable foreign-function interface library. Copyright (C) 2008 Red Hat, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. A copy of the license is included in the section entitled "GNU General Public License". * Menu: * Introduction:: What is libffi? * Using libffi:: How to use libffi. * Missing Features:: Things libffi can't do. * Index:: Index.  File: libffi.info, Node: Introduction, Next: Using libffi, Prev: Top, Up: Top 1 What is libffi? ***************** Compilers for high level languages generate code that follow certain conventions. These conventions are necessary, in part, for separate compilation to work. One such convention is the "calling convention". The calling convention is a set of assumptions made by the compiler about where function arguments will be found on entry to a function. A calling convention also specifies where the return value for a function is found. The calling convention is also sometimes called the "ABI" or "Application Binary Interface". Some programs may not know at the time of compilation what arguments are to be passed to a function. For instance, an interpreter may be told at run-time about the number and types of arguments used to call a given function. `Libffi' can be used in such programs to provide a bridge from the interpreter program to compiled code. The `libffi' library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. FFI stands for Foreign Function Interface. A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language. The `libffi' library really only provides the lowest, machine dependent layer of a fully featured foreign function interface. A layer must exist above `libffi' that handles type conversions for values passed between the two languages.  File: libffi.info, Node: Using libffi, Next: Missing Features, Prev: Introduction, Up: Top 2 Using libffi ************** * Menu: * The Basics:: The basic libffi API. * Simple Example:: A simple example. * Types:: libffi type descriptions. * Multiple ABIs:: Different passing styles on one platform. * The Closure API:: Writing a generic function.  File: libffi.info, Node: The Basics, Next: Simple Example, Up: Using libffi 2.1 The Basics ============== `Libffi' assumes that you have a pointer to the function you wish to call and that you know the number and types of arguments to pass it, as well as the return type of the function. The first thing you must do is create an `ffi_cif' object that matches the signature of the function you wish to call. This is a separate step because it is common to make multiple calls using a single `ffi_cif'. The "cif" in `ffi_cif' stands for Call InterFace. To prepare a call interface object, use the function `ffi_prep_cif'. -- Function: ffi_status ffi_prep_cif (ffi_cif *CIF, ffi_abi ABI, unsigned int NARGS, ffi_type *RTYPE, ffi_type **ARGTYPES) This initializes CIF according to the given parameters. ABI is the ABI to use; normally `FFI_DEFAULT_ABI' is what you want. *note Multiple ABIs:: for more information. NARGS is the number of arguments that this function accepts. `libffi' does not yet handle varargs functions; see *note Missing Features:: for more information. RTYPE is a pointer to an `ffi_type' structure that describes the return type of the function. *Note Types::. ARGTYPES is a vector of `ffi_type' pointers. ARGTYPES must have NARGS elements. If NARGS is 0, this argument is ignored. `ffi_prep_cif' returns a `libffi' status code, of type `ffi_status'. This will be either `FFI_OK' if everything worked properly; `FFI_BAD_TYPEDEF' if one of the `ffi_type' objects is incorrect; or `FFI_BAD_ABI' if the ABI parameter is invalid. To call a function using an initialized `ffi_cif', use the `ffi_call' function: -- Function: void ffi_call (ffi_cif *CIF, void *FN, void *RVALUE, void **AVALUES) This calls the function FN according to the description given in CIF. CIF must have already been prepared using `ffi_prep_cif'. RVALUE is a pointer to a chunk of memory that will hold the result of the function call. This must be large enough to hold the result and must be suitably aligned; it is the caller's responsibility to ensure this. If CIF declares that the function returns `void' (using `ffi_type_void'), then RVALUE is ignored. If RVALUE is `NULL', then the return value is discarded. AVALUES is a vector of `void *' pointers that point to the memory locations holding the argument values for a call. If CIF declares that the function has no arguments (i.e., NARGS was 0), then AVALUES is ignored.  File: libffi.info, Node: Simple Example, Next: Types, Prev: The Basics, Up: Using libffi 2.2 Simple Example ================== Here is a trivial example that calls `puts' a few times. #include #include int main() { ffi_cif cif; ffi_type *args[1]; void *values[1]; char *s; int rc; /* Initialize the argument info vectors */ args[0] = &ffi_type_pointer; values[0] = &s; /* Initialize the cif */ if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, &ffi_type_uint, args) == FFI_OK) { s = "Hello World!"; ffi_call(&cif, puts, &rc, values); /* rc now holds the result of the call to puts */ /* values holds a pointer to the function's arg, so to call puts() again all we need to do is change the value of s */ s = "This is cool!"; ffi_call(&cif, puts, &rc, values); } return 0; }  File: libffi.info, Node: Types, Next: Multiple ABIs, Prev: Simple Example, Up: Using libffi 2.3 Types ========= * Menu: * Primitive Types:: Built-in types. * Structures:: Structure types. * Type Example:: Structure type example.  File: libffi.info, Node: Primitive Types, Next: Structures, Up: Types 2.3.1 Primitive Types --------------------- `Libffi' provides a number of built-in type descriptors that can be used to describe argument and return types: `ffi_type_void' The type `void'. This cannot be used for argument types, only for return values. `ffi_type_uint8' An unsigned, 8-bit integer type. `ffi_type_sint8' A signed, 8-bit integer type. `ffi_type_uint16' An unsigned, 16-bit integer type. `ffi_type_sint16' A signed, 16-bit integer type. `ffi_type_uint32' An unsigned, 32-bit integer type. `ffi_type_sint32' A signed, 32-bit integer type. `ffi_type_uint64' An unsigned, 64-bit integer type. `ffi_type_sint64' A signed, 64-bit integer type. `ffi_type_float' The C `float' type. `ffi_type_double' The C `double' type. `ffi_type_uchar' The C `unsigned char' type. `ffi_type_schar' The C `signed char' type. (Note that there is not an exact equivalent to the C `char' type in `libffi'; ordinarily you should either use `ffi_type_schar' or `ffi_type_uchar' depending on whether `char' is signed.) `ffi_type_ushort' The C `unsigned short' type. `ffi_type_sshort' The C `short' type. `ffi_type_uint' The C `unsigned int' type. `ffi_type_sint' The C `int' type. `ffi_type_ulong' The C `unsigned long' type. `ffi_type_slong' The C `long' type. `ffi_type_longdouble' On platforms that have a C `long double' type, this is defined. On other platforms, it is not. `ffi_type_pointer' A generic `void *' pointer. You should use this for all pointers, regardless of their real type. Each of these is of type `ffi_type', so you must take the address when passing to `ffi_prep_cif'.  File: libffi.info, Node: Structures, Next: Type Example, Prev: Primitive Types, Up: Types 2.3.2 Structures ---------------- Although `libffi' has no special support for unions or bit-fields, it is perfectly happy passing structures back and forth. You must first describe the structure to `libffi' by creating a new `ffi_type' object for it. -- ffi_type: The `ffi_type' has the following members: `size_t size' This is set by `libffi'; you should initialize it to zero. `unsigned short alignment' This is set by `libffi'; you should initialize it to zero. `unsigned short type' For a structure, this should be set to `FFI_TYPE_STRUCT'. `ffi_type **elements' This is a `NULL'-terminated array of pointers to `ffi_type' objects. There is one element per field of the struct.  File: libffi.info, Node: Type Example, Prev: Structures, Up: Types 2.3.3 Type Example ------------------ The following example initializes a `ffi_type' object representing the `tm' struct from Linux's `time.h'. Here is how the struct is defined: struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; /* Those are for future use. */ long int __tm_gmtoff__; __const char *__tm_zone__; }; Here is the corresponding code to describe this struct to `libffi': { ffi_type tm_type; ffi_type *tm_type_elements[12]; int i; tm_type.size = tm_type.alignment = 0; tm_type.elements = &tm_type_elements; for (i = 0; i < 9; i++) tm_type_elements[i] = &ffi_type_sint; tm_type_elements[9] = &ffi_type_slong; tm_type_elements[10] = &ffi_type_pointer; tm_type_elements[11] = NULL; /* tm_type can now be used to represent tm argument types and return types for ffi_prep_cif() */ }  File: libffi.info, Node: Multiple ABIs, Next: The Closure API, Prev: Types, Up: Using libffi 2.4 Multiple ABIs ================= A given platform may provide multiple different ABIs at once. For instance, the x86 platform has both `stdcall' and `fastcall' functions. `libffi' provides some support for this. However, this is necessarily platform-specific.  File: libffi.info, Node: The Closure API, Prev: Multiple ABIs, Up: Using libffi 2.5 The Closure API =================== `libffi' also provides a way to write a generic function - a function that can accept and decode any combination of arguments. This can be useful when writing an interpreter, or to provide wrappers for arbitrary functions. This facility is called the "closure API". Closures are not supported on all platforms; you can check the `FFI_CLOSURES' define to determine whether they are supported on the current platform. Because closures work by assembling a tiny function at runtime, they require special allocation on platforms that have a non-executable heap. Memory management for closures is handled by a pair of functions: -- Function: void *ffi_closure_alloc (size_t SIZE, void **CODE) Allocate a chunk of memory holding SIZE bytes. This returns a pointer to the writable address, and sets *CODE to the corresponding executable address. SIZE should be sufficient to hold a `ffi_closure' object. -- Function: void ffi_closure_free (void *WRITABLE) Free memory allocated using `ffi_closure_alloc'. The argument is the writable address that was returned. Once you have allocated the memory for a closure, you must construct a `ffi_cif' describing the function call. Finally you can prepare the closure function: -- Function: ffi_status ffi_prep_closure_loc (ffi_closure *CLOSURE, ffi_cif *CIF, void (*FUN) (ffi_cif *CIF, void *RET, void **ARGS, void *USER_DATA), void *USER_DATA, void *CODELOC) Prepare a closure function. CLOSURE is the address of a `ffi_closure' object; this is the writable address returned by `ffi_closure_alloc'. CIF is the `ffi_cif' describing the function parameters. USER_DATA is an arbitrary datum that is passed, uninterpreted, to your closure function. CODELOC is the executable address returned by `ffi_closure_alloc'. FUN is the function which will be called when the closure is invoked. It is called with the arguments: CIF The `ffi_cif' passed to `ffi_prep_closure_loc'. RET A pointer to the memory used for the function's return value. FUN must fill this, unless the function is declared as returning `void'. ARGS A vector of pointers to memory holding the arguments to the function. USER_DATA The same USER_DATA that was passed to `ffi_prep_closure_loc'. `ffi_prep_closure_loc' will return `FFI_OK' if everything went ok, and something else on error. After calling `ffi_prep_closure_loc', you can cast CODELOC to the appropriate pointer-to-function type. You may see old code referring to `ffi_prep_closure'. This function is deprecated, as it cannot handle the need for separate writable and executable addresses.  File: libffi.info, Node: Missing Features, Next: Index, Prev: Using libffi, Up: Top 3 Missing Features ****************** `libffi' is missing a few features. We welcome patches to add support for these. * There is no support for calling varargs functions. This may work on some platforms, depending on how the ABI is defined, but it is not reliable. * There is no support for bit fields in structures. * The closure API is * The "raw" API is undocumented.  File: libffi.info, Node: Index, Prev: Missing Features, Up: Top Index ***** [index] * Menu: * : Structures. (line 12) * ABI: Introduction. (line 13) * Application Binary Interface: Introduction. (line 13) * calling convention: Introduction. (line 13) * cif: The Basics. (line 14) * closure API: The Closure API. (line 13) * closures: The Closure API. (line 13) * FFI: Introduction. (line 31) * ffi_call: The Basics. (line 41) * ffi_closure_alloca: The Closure API. (line 19) * ffi_closure_free: The Closure API. (line 26) * FFI_CLOSURES: The Closure API. (line 13) * ffi_prep_cif: The Basics. (line 16) * ffi_prep_closure_loc: The Closure API. (line 34) * ffi_status <1>: The Closure API. (line 37) * ffi_status: The Basics. (line 18) * ffi_type: Structures. (line 11) * ffi_type_double: Primitive Types. (line 41) * ffi_type_float: Primitive Types. (line 38) * ffi_type_longdouble: Primitive Types. (line 71) * ffi_type_pointer: Primitive Types. (line 75) * ffi_type_schar: Primitive Types. (line 47) * ffi_type_sint: Primitive Types. (line 62) * ffi_type_sint16: Primitive Types. (line 23) * ffi_type_sint32: Primitive Types. (line 29) * ffi_type_sint64: Primitive Types. (line 35) * ffi_type_sint8: Primitive Types. (line 17) * ffi_type_slong: Primitive Types. (line 68) * ffi_type_sshort: Primitive Types. (line 56) * ffi_type_uchar: Primitive Types. (line 44) * ffi_type_uint: Primitive Types. (line 59) * ffi_type_uint16: Primitive Types. (line 20) * ffi_type_uint32: Primitive Types. (line 26) * ffi_type_uint64: Primitive Types. (line 32) * ffi_type_uint8: Primitive Types. (line 14) * ffi_type_ulong: Primitive Types. (line 65) * ffi_type_ushort: Primitive Types. (line 53) * ffi_type_void: Primitive Types. (line 10) * Foreign Function Interface: Introduction. (line 31) * void <1>: The Closure API. (line 20) * void: The Basics. (line 43)  Tag Table: Node: Top700 Node: Introduction1436 Node: Using libffi3072 Node: The Basics3507 Node: Simple Example6114 Node: Types7141 Node: Primitive Types7424 Node: Structures9244 Node: Type Example10104 Node: Multiple ABIs11327 Node: The Closure API11698 Node: Missing Features14618 Node: Index15111  End Tag Table 07070100188e63000081a40000000000000000000000014dc9eb74000014c6000000b600010002ffffffffffffffff0000001e00000000root/usr/local/share/info/dirThis is the file .../info/dir, which contains the topmost node of the Info hierarchy, called (dir)Top. The first time you invoke Info you start off looking at this node.  File: dir, Node: Top This is the top of the INFO tree This (the Directory node) gives a menu of major topics. Typing "q" exits, "?" lists all Info commands, "d" returns here, "h" gives a primer for first-timers, "mEmacs" visits the Emacs manual, etc. In Emacs, you can click mouse button 2 on a menu item or cross reference to select it. * Menu: Development * libffi: (libffi). Portable foreign-function interface library. GNU Packages * CVS: (cvs). Concurrent Versions System GNU Plotting Utilities * Appendices: (plotutils)Appendices. More info on the plotting utilities. * graph: (plotutils)graph Invocation. Plot datasets, possibly in real time. * libplot: (plotutils)libplot. A library for 2-D vector graphics. * ode: (plotutils)ode Invocation. Integrate differential equations. * pic2plot: (plotutils)pic2plot Invocation. Convert files in the pic language * plotfont: (plotutils)plotfont Invocation. Plot character maps of fonts. * plot: (plotutils)plot Invocation. Convert and display plot files. * Plotting utilities: (plotutils). GNU plotting utilities. * spline: (plotutils)spline Invocation. Interpolate between points in datasets. * tek2plot: (plotutils)tek2plot Invocation. Translate legacy Tektronix data. Individual utilities * cvs: (cvs)CVS commands. Concurrent Versions System Miscellaneous * jwhois: (jwhois). Whois client. Programming * cvsclient: (cvsclient). The CVS client/server protocol. Software libraries * GnuTLS: (gnutls). GNU Transport Layer Security Library. * libtasn1: (libtasn1). Library for Abstract Syntax Notation One (ASN.1). System Administration * certtool: (gnutls)Invoking certtool. Manipulate certificates and keys. * gnutls-cli: (gnutls)Invoking gnutls-cli. GnuTLS test client. * gnutls-cli-debug: (gnutls)Invoking gnutls-cli-debug. GnuTLS debug client. * gnutls-serv: (gnutls)Invoking gnutls-serv. GnuTLS test server. * psktool: (gnutls)Invoking psktool. Simple TLS-Pre-Shared-Keys manager. * srptool: (gnutls)Invoking srptool. Simple SRP password tool. Text creation and manipulation * M4: (m4). A powerful macro processor. C++ libraries * autosprintf: (autosprintf). Support for printf format strings in C++. GNU Gettext Utilities * ISO3166: (gettext)Country Codes. ISO 3166 country codes. * ISO639: (gettext)Language Codes. ISO 639 language codes. * autopoint: (gettext)autopoint Invocation. Copy gettext infrastructure. * envsubst: (gettext)envsubst Invocation. Expand environment variables. * gettext: (gettext). GNU gettext utilities. * gettextize: (gettext)gettextize Invocation. Prepare a package for gettext. * msgattrib: (gettext)msgattrib Invocation. Select part of a PO file. * msgcat: (gettext)msgcat Invocation. Combine several PO files. * msgcmp: (gettext)msgcmp Invocation. Compare a PO file and template. * msgcomm: (gettext)msgcomm Invocation. Match two PO files. * msgconv: (gettext)msgconv Invocation. Convert PO file to encoding. * msgen: (gettext)msgen Invocation. Create an English PO file. * msgexec: (gettext)msgexec Invocation. Process a PO file. * msgfilter: (gettext)msgfilter Invocation. Pipe a PO file through a filter. * msgfmt: (gettext)msgfmt Invocation. Make MO files out of PO files. * msggrep: (gettext)msggrep Invocation. Select part of a PO file. * msginit: (gettext)msginit Invocation. Create a fresh PO file. * msgmerge: (gettext)msgmerge Invocation. Update a PO file from template. * msgunfmt: (gettext)msgunfmt Invocation. Uncompile MO file into PO file. * msguniq: (gettext)msguniq Invocation. Unify duplicates for PO file. * ngettext: (gettext)ngettext Invocation. Translate a message with plural. * xgettext: (gettext)xgettext Invocation. Extract strings into a PO file. Software development * Make: (make). Remake files automatically. * bison: (bison). GNU parser generator (Yacc replacement). 07070100188e65000041ed0000000000000000000000034dc9ebf100000000000000b600010002ffffffffffffffff0000001900000000root/usr/local/share/man07070100188e66000041ed0000000000000000000000024dc9ebf100000000000000b600010002ffffffffffffffff0000001e00000000root/usr/local/share/man/man307070100188e68000081a40000000000000000000000014dc9eb730000091d000000b600010002ffffffffffffffff0000002900000000root/usr/local/share/man/man3/ffi_call.3.Dd February 15, 2008 .Dt ffi_call 3 .Sh NAME .Nm ffi_call .Nd Invoke a foreign function. .Sh SYNOPSIS .In ffi.h .Ft void .Fo ffi_call .Fa "ffi_cif *cif" .Fa "void (*fn)(void)" .Fa "void *rvalue" .Fa "void **avalue" .Fc .Sh DESCRIPTION The .Nm ffi_call function provides a simple mechanism for invoking a function without requiring knowledge of the function's interface at compile time. .Fa fn is called with the values retrieved from the pointers in the .Fa avalue array. The return value from .Fa fn is placed in storage pointed to by .Fa rvalue . .Fa cif contains information describing the data types, sizes and alignments of the arguments to and return value from .Fa fn , and must be initialized with .Nm ffi_prep_cif before it is used with .Nm ffi_call . .Pp .Fa rvalue must point to storage that is sizeof(ffi_arg) or larger for non-floating point types. For smaller-sized return value types, the .Nm ffi_arg or .Nm ffi_sarg integral type must be used to hold the return value. .Sh EXAMPLES .Bd -literal #include #include unsigned char foo(unsigned int, float); int main(int argc, const char **argv) { ffi_cif cif; ffi_type *arg_types[2]; void *arg_values[2]; ffi_status status; // Because the return value from foo() is smaller than sizeof(long), it // must be passed as ffi_arg or ffi_sarg. ffi_arg result; // Specify the data type of each argument. Available types are defined // in . arg_types[0] = &ffi_type_uint; arg_types[1] = &ffi_type_float; // Prepare the ffi_cif structure. if ((status = ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_uint8, arg_types)) != FFI_OK) { // Handle the ffi_status error. } // Specify the values of each argument. unsigned int arg1 = 42; float arg2 = 5.1; arg_values[0] = &arg1; arg_values[1] = &arg2; // Invoke the function. ffi_call(&cif, FFI_FN(foo), &result, arg_values); // The ffi_arg 'result' now contains the unsigned char returned from foo(), // which can be accessed by a typecast. printf("result is %hhu", (unsigned char)result); return 0; } // The target function. unsigned char foo(unsigned int x, float y) { unsigned char result = x - y; return result; } .Ed .Sh SEE ALSO .Xr ffi 3 , .Xr ffi_prep_cif 3 07070100188e69000081a40000000000000000000000014dc9eb730000041d000000b600010002ffffffffffffffff0000002d00000000root/usr/local/share/man/man3/ffi_prep_cif.3.Dd February 15, 2008 .Dt ffi_prep_cif 3 .Sh NAME .Nm ffi_prep_cif .Nd Prepare a .Nm ffi_cif structure for use with .Nm ffi_call . .Sh SYNOPSIS .In ffi.h .Ft ffi_status .Fo ffi_prep_cif .Fa "ffi_cif *cif" .Fa "ffi_abi abi" .Fa "unsigned int nargs" .Fa "ffi_type *rtype" .Fa "ffi_type **atypes" .Fc .Sh DESCRIPTION The .Nm ffi_prep_cif function prepares a .Nm ffi_cif structure for use with .Nm ffi_call . .Fa abi specifies a set of calling conventions to use. .Fa atypes is an array of .Fa nargs pointers to .Nm ffi_type structs that describe the data type, size and alignment of each argument. .Fa rtype points to an .Nm ffi_type that describes the data type, size and alignment of the return value. .Sh RETURN VALUES Upon successful completion, .Nm ffi_prep_cif returns .Nm FFI_OK . It will return .Nm FFI_BAD_TYPEDEF if .Fa cif is .Nm NULL or .Fa atypes or .Fa rtype is malformed. If .Fa abi does not refer to a valid ABI, .Nm FFI_BAD_ABI will be returned. Available ABIs are defined in .Nm . .Sh SEE ALSO .Xr ffi 3 , .Xr ffi_call 3 07070100188e67000081a40000000000000000000000014dc9eb7300000288000000b600010002ffffffffffffffff0000002400000000root/usr/local/share/man/man3/ffi.3.Dd February 15, 2008 .Dt FFI 3 .Sh NAME .Nm FFI .Nd Foreign Function Interface .Sh LIBRARY libffi, -lffi .Sh SYNOPSIS .In ffi.h .Ft ffi_status .Fo ffi_prep_cif .Fa "ffi_cif *cif" .Fa "ffi_abi abi" .Fa "unsigned int nargs" .Fa "ffi_type *rtype" .Fa "ffi_type **atypes" .Fc .Ft void .Fo ffi_call .Fa "ffi_cif *cif" .Fa "void (*fn)(void)" .Fa "void *rvalue" .Fa "void **avalue" .Fc .Sh DESCRIPTION The foreign function interface provides a mechanism by which a function can generate a call to another function at runtime without requiring knowledge of the called function's interface at compile time. .Sh SEE ALSO .Xr ffi_prep_cif 3 , .Xr ffi_call 3 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!