Spade
Mini Shell
�
p�Wc@sZddlZddlZddlZddlmZmZdefd��YZdZdS(i����Ni(tmodeltffiplatformtVGenericEnginecBs�eZdZeZd�Zd�Zd�Zd�Zdd�Z d�Z
dd �Zd
�Zd�Z
d�Zd
�Zd�ZeZeZeZd�ZeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z
d�Z!d�Z"d�Z#d.dd.d�Z%d
�Z&eZ'd.d!�Z(d"�Z)d#�Z*d$�Z+d%�Z,d&d'�Z-d&d(�Z.d)�Z/d*�Z0eZ1d+�Z2d,�Z3eZ4d-�Z5RS(/tgcCs+||_|j|_g|_i|_dS(N(tverifiertffitexport_symbolst_struct_pending_verification(tselfR((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt__init__s cCs|jd|j�dS(NR(t
setdefaultR(Rtkwds((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytpatch_extension_kwdsscCssxl|D]d}||}|dkr/tj}nx9|D]1}tjj||�}tjj|�r6|Sq6WqWdS(N(tNonetsystpathtostjointisfile(Rtmodule_nameRtso_suffixest so_suffixtbasenametdirnametfilename((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytfind_modules
cCsdS(N((R((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt
collect_types$stcCs|jj|d�dS(Ns
(t_ftwrite(Rtwhat((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_prnt'scCs�|j}|t�||jj�|jd�tjdkr�tjdkrWd}nd}|jj�}|d||f�ndS(Ntdecltwin32itPyInit_tinitsvoid
%s%s(void) { }
(i( Rtcffimod_headerRtpreamblet _generateRtplatformtversion_infotget_module_name(Rtprnttprefixtmodname((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytwrite_source_to_f*s
ics��jj}tjjtj�jj�}|j||���j �d�dt
jf���fd��Y��d�}�j �dd|�|S(Ntloadingt
FFILibrarycs,eZ�Z�jZgZ�fd�ZRS(cs�jS(N(t _cffi_dir(R(R/(s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt__dir__Ss(t__name__t
__module__t_cffi_generic_moduleRt _cffi_ffiR0R1((R/tmoduleR(s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR/Os Rtloadedtlibrary(Rt_backendRRRtcurdirRtmodulefilenametload_libraryt_loadttypest
ModuleType(RtflagstbackendRR8((R/R6Rs6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR<@s%cCsHg|jjjj�D]\}\}}||f^q}|j�|S(N(Rt_parsert
_declarationstitemstsort(Rtkeyttptqualtlst((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_get_declarations\s7
cCs�x�|j�D]�\}}|jdd�\}}yt|d||f�}Wn$tk
rttjd|��nXy|||�Wq
tk
r�}tj||��q
Xq
WdS(Nt is_generate_gen_%s_%ssnot
implemented in verify():
%r( RJtsplittgetattrtAttributeErrorRtVerificationErrort ExceptionRtattach_exception_info(Rt step_nametnameRGtkindtrealnametmethodte((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR&bs
c
Ks�x�|j�D]}\}}|jdd�\}}t|d||f�}y|||||�Wq
tk
r�} tj| |��q
Xq
WdS(NRKis
_%s_gen_%s(RJRLRMRPRRQ(
RR6RRRRSRGRTRURVRW((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR=qscCsdS(N((RRGRS((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_nothing{scKsdS(N((RRGRSR6R((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_noop~scCs8t|tj�st�|jr8|jt||�dS|j}t|j �}g}xUt
|j �D]D\}}d}t|tj�r�d}n|jd||f�qfWd|} gt
|j |�D]"\}}
|jd|
| �^q�}|j}t|tj�r6|jd|jd| ��tj}ndj|�pHd }d
|}
|jj|
�|jr~|jd}nd}d||
|f}d
|} ||j|| ��|d�t|jtj�r�d}n$t|jtj�s�d}nd}|d||dj|�f�|d�|�dS(NRt*s%sx%dsargument
of %ss %sis *rs, tvoids
_cffi_f_%sRKs %s%s(%s)sresult of %st{s*r = sreturn s %s%s(%s);t}(t
isinstanceRtFunctionPtrTypetAssertionErrortellipsist_generate_gen_consttFalseRtlentargst enumeratet
StructOrUniontappendtzipt
get_c_nametresulttinsertt void_typeRRtabitVoidType(RRGRSR*tnumargstargnamestittypetindirectiontcontexttargtarglistttpresulttwrappernameRntfuncdecltresult_code((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_function_decl�sJ
8
cCst|tj�st�|jr<|jt|||�}n�g}|}td�|jD��svt|j tj
�r�g}xat|j�D]P\} }
t|
tj
�r�tj|
�}
|j
| |
f�n|j
|
�q�W|j }t|tj
�rg|jdkr&td|j�f��ntj|�}|jd|�|jdd|f�tj}ntjt|�||j�}n|jj|�}d|}
|j||
�}x,|D]$\} }
|j|| |
|�}q�Wt|||�t|�jj
|�dS(Ncss!|]}t|tj�VqdS(N(R^RRg(t.0ttyp((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pys <genexpr>�ss*'%s'
is used as result type, but is opaqueiRks
_cffi_f_%s(R^RR_R`Rat_load_constantRctanyReRkRgRftPointerTypeRhtfldtypesR
t TypeErrort_get_c_nameRlRmttupleRt_get_cached_btypet
load_functiont_make_struct_wrappertsetattrRsR0(RRGRSR6R8tnewfunctiontindirectionstbase_tpt
indirect_argsRrR~tindirect_resulttBFuncRy((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_function�s@
csp|jj�|jj|���dkrK|j����fd�}n����fd�}||_|S(NRkcs$�j��}�||�|dS(Ni(tnew(Retres(tBTypeRtoldfunc(s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytnewfunc�s
cs7|�
�j�|��f|�d}�|�S(Ni(tnewp(Re(R�RARrR�(s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR��s-(RR9R�t_cffi_base_type(RR�RrRGR�R�((R�RARRrR�s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR��s cCs,||jkst�|j|d|�dS(Ntstruct(RSR`t_generate_struct_or_union_decl(RRGRS((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_struct_decl�scCs|j|d||�dS(NR�(t_loading_struct_or_union(RRGRSR6((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loading_gen_struct�scKs|j|�dS(N(t_loaded_struct_or_union(RRGRSR6R((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_struct�scCs,||jkst�|j|d|�dS(Ntunion(RSR`R�(RRGRS((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_union_decl�scCs|j|d||�dS(NR�(R�(RRGRSR6((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loading_gen_union�scKs|j|�dS(N(R�(RRGRSR6R((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_unionsc
Cs�|jdkrdSd||f}d||f}d||fj�}|j}|d||f�|d�|d�|d�x�|j�D]�\}} }
}t| tj�r�| j�s�|
dkr�|d |�q�y.|d
| j dd|d
|�|f�Wq�t
jk
r8}|dt|��q�Xq�W|d�|j
j|�|d|f�|d�|d|�|d�|d|�|d�x�|j�D]�\}} }
}|
dkr�q�n|d||f�t| tj�r| jdkr|d| j��q�|d||f�q�W|d�|d�|d�|d�|d|f�|d�|�dS(Ns_cffi_check_%s_%ss_cffi_layout_%s_%ss%s
%ssstatic void %s(%s *p)R\s8 /* only to generate compile-time warnings or
errors */s
(void)p;is (void)((p->%s) << 1);s { %s = &p->%s;
(void)tmp; }s*tmpsfield %rtqualss
/* %s */R]sintptr_t %s(intptr_t i)s, struct _cffi_aligncheck { char x;
%s y; };s static intptr_t nums[] = {s sizeof(%s),s)
offsetof(struct _cffi_aligncheck, y),s offsetof(%s, %s),s 0, /* %s
*/s sizeof(((%s *)0)->%s),s -1s };s return nums[i];s3 /*
the next line is not executed, but compiled */s
%s(0);(tfldnamesR
tstripRt
enumfieldsR^Rt
PrimitiveTypetis_integer_typeRjRROtstrRRht ArrayTypetlengthR�(
RRGR+RSt
checkfuncnametlayoutfuncnametcnameR*tfnametftypetfbitsizetfqualRW((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR�sT
!
cCsr|jdkrdSd||f}|jjd�d}|j||�}g}d} x=tr�|| �}
|
dkr|Pn|j|
�| d7} qZWt|tj �rE|j
rE|d}|d}|ddd�}
|ddd�}|j�t|
�t|�ko"t|j�kns-t
�|
|||f|_n)d||fj�}||f|j|<dS(Ns_cffi_layout_%s_%ssintptr_t(*)(intptr_t)iiiis%s
%s(R�R
Rt_typeof_lockedR�tTrueRhR^RRgtpartialt
force_flattenRdR`tfixedlayoutR�R(RRGR+RSR6R�R�tfunctiontlayouttnumtxt totalsizettotalalignmenttfieldofst fieldsizeR�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR�6s.
7c
Cs~|jdkrdS|jj|�||jkrzd�}|j}|j|�}|jj|�\}}||d|j|�d�||d|j|�d�d}x�|j�D]�\}} }
}|
dkr�q�n||||j ||�d|f�||ddkrQ|j| �}|||d|j|�d|f�n|d7}q�W|t
|�kszt�ndS( NcSs/||kr+tjd|||f��ndS(Ns'%s
(we have %d, but C compiler says
%d)(RRO(t realvaluet
expectedvaluetmsg((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytcheckYsiswrong
total sizeiswrong total alignmentiswrong offset for field %rswrong
size for field
%r(R�R
RR�RtpoptsizeoftalignofR�toffsetofRdR`(
RRGR�RtBStructR�R�RrR�R�R�R�tBField((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR�Rs, cCs?t|tj�r(|j||d�n|j|d|�dS(NR(R^RtEnumTypet_generate_gen_enum_declR�(RRGRS((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_anonymous_decltscCsEt|tj�r+|j|||d�n|j|d||�dS(NR(R^RR�t_loading_gen_enumR�(RRGRSR6((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loading_gen_anonymouszscKs<t|tj�r+|j||||�n
|j|�dS(N(R^RR�t_loaded_gen_enumR�(RRGRSR6R((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_anonymous�stconstc
Cs�|j}d||f}|jj|�|dk r�|sAt�|dksSt�|d|�|d�|j||�|d�|d�n|r�|dks�t�|d|�|d�|d|f�|d |f�|d�n�|dk st�|dkst�|d
kr*d}nd}d} |dkrct|tj�rcd
} d}n||j d| |f|��|d�|d||f�|d�|�dS(Ns_cffi_%s_%sR�sint
%s(char *out_error)R\s return 0;R]sint %s(long long *out_value)s
*out_value = (long long)(%s);s return (%s) <= 0;tvart&Rsconst
*s %s%s(void)s return (%s%s);(
RRRhR
R`t_check_int_constant_valueR^RRgRj(
Rtis_intRSRGtcategorytcheck_valueR*tfuncnamet ampersandtextra((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyRb�s@
cCs5t|tj�o|j�}|j|||�dS(N(R^RR�R�Rb(RRGRSR�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_constant_decl�scCs�d|}|dk r;|s"t�|j||�|}nR|r�|jjd�d}|jjd�d} |j| |�}
|jj|�}|
|�}t|d�}|dkr�|r�|jjd�d}
|dd|jj|
�>7}q�n�|dkst�d}t |t
j�r1d |}n|jj|j||��d} |j| |�}
|
�}t |t
j�r�|d}n|S(
Ns_cffi_const_%ss
long long*isint(*)(long long*)s long
longiis (*)(void)RZ(
R
R`t_load_known_int_constantRR�R�R�tintR�R^RRgRj(RR�RGRSR6R�R�tvalueR�R�R�tptnegativet BLongLongtfntypeextra((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR�s2
$
"
cCs`t|tj�o|j�}|j||||�}t|||�t|�jj|�dS(N( R^RR�R�RR�RsR0Rh(RRGRSR6R8R�R�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_constant�scCs�|j}|dkr/|d|||f�n|d|||f�|d�|d|�|d|�|d�|d|�|d �|d
|d |f�|d�|d
�dS(Nis& if ((%s) > 0 ||
(long)(%s) != %dL) {s1 if ((%s) <= 0 || (unsigned long)(%s) != %dUL)
{s char buf[64];s if ((%s) <= 0)s) sprintf(buf,
"%%ld", (long)(%s));s elses2 sprintf(buf,
"%%lu", (unsigned long)(%s));s: sprintf(out_error, "%s
has the real value %s, not %s",s "%s", buf,
"%d");ids return -1;s
}(R(RRSR�R*((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR��s
cCs�|jjd�d}|jjd�d}|j||�}|jj|d�}||�dkr�|jj|�}tjdkr�t|d�}ntj |��ndS(Nschar[]is
int(*)(char*)iisutf-8(i(
RR�R�R�tstringRR(R�RRO(RR6R�R�R�R�R�terror((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR��scCs
|jdd�}d||fS(Nt$t___D_s
_cffi_e_%s_%s(treplace(RR+RS((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_enum_funcname�stenumcCs�|jr1x!|jD]}|jt|�qWdS|j||�}|jj|�|j}|d|�|d�x3t|j|j �D]\}}|j
||�q�W|d�|d�|�dS(Nsint %s(char *out_error)R\s
return 0;R](R�tenumeratorsRbR�R�RRhRRit
enumvaluesR�(RRGRSR+t
enumeratorR�R*t enumvalue((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR��s
"
cCsx|jrRg|jD]}|jt|||�^q}t|�|_t|_n"|j||�}|j||�dS(N( R�R�RR�R�R�tpartial_resolvedR�R�(RRGRSR6R+R�R�R�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR�
s +cCsPxIt|j|j�D]2\}}t|||�t|�jj|�qWdS(N(RiR�R�R�RsR0Rh(RRGRSR6R8R�R�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR�s"cCs5|dkrd}n|}|jt|d|�dS(Ns...R�(R
RbR�(RRGRSR�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_macro_decls cCsc|dkrd}n|}|jt|||d|�}t|||�t|�jj|�dS(Ns...R�(R
RR�R�RsR0Rh(RRGRSR6R8R�R�((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_macro(s cCs�t|tj�r�|jdkr}|j}d|f}|jj|�|d|�|d�|d|f�|d�ntj|j�}|j t
||�n(tj|�}|j t
||dd�dS( Ns...s_cffi_sizeof_%sssize_t %s(void)R\s return
sizeof(%s);R]R�R�(R^RR�R�RRRhR�titemRbRc(RRGRSR*R�ttp_ptr((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_generate_gen_variable_decl5s
cs�t|tj�r_|jdkr�d|f}|jjd�d}|j||�}|�}|jj|j�} t ||jj
| ��\}
}|dkr�tjd||jf��n|j
|
�}ntj|j�}|jt|||�}
|jdk r5|jj|�}|jj||
�}
nt|||
�t|�jj|�dSd|}|jj|jd|��d}|j||�}|���fd�}�fd �}tt|�|t||��t|�jj|�dS(
Ns...s_cffi_sizeof_%sssize_t(*)(void)is/bad size: %r does not seem to be
an array of %ss_cffi_var_%ss
*(*)(void)cs�dS(Ni((R8(tptr(s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytgetterfscs|�d<dS(Ni((R8R�(R�(s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pytsetterhs(R^RR�R�RR�R�R�R�tdivmodR�RROtresolve_lengthR�RRcR
tcastR�RsR0RhRjtproperty(RRGRSR6R8R�R�R�tsizet BItemTypeR�trestR�R�tBArrayR�R�((R�s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt_loaded_gen_variableGs:
!
" N(6R2R3t
_class_keyRct_gen_python_moduleR RRRRR-R<RJR&R=RXRYt_generate_gen_typedef_declt_loading_gen_typedeft_loaded_gen_typedefR|t_loading_gen_functionR�R�R�R�R�R�R�R�R�R�R�R�R�R�R
RbR�t_loading_gen_constantRR�R�R�R�R�R�R�R�t_loading_gen_macroR�R�t_loading_gen_variableR(((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyR
sf
- $ 1 " $
s
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h> /* XXX for ssize_t on some platforms */
/* this block of #ifs should be kept exactly identical between
c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py */
#if defined(_MSC_VER)
# include <malloc.h> /* for alloca() */
# if _MSC_VER < 1600 /* MSVC < 2010 */
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;
typedef __int8 int_least8_t;
typedef __int16 int_least16_t;
typedef __int32 int_least32_t;
typedef __int64 int_least64_t;
typedef unsigned __int8 uint_least8_t;
typedef unsigned __int16 uint_least16_t;
typedef unsigned __int32 uint_least32_t;
typedef unsigned __int64 uint_least64_t;
typedef __int8 int_fast8_t;
typedef __int16 int_fast16_t;
typedef __int32 int_fast32_t;
typedef __int64 int_fast64_t;
typedef unsigned __int8 uint_fast8_t;
typedef unsigned __int16 uint_fast16_t;
typedef unsigned __int32 uint_fast32_t;
typedef unsigned __int64 uint_fast64_t;
typedef __int64 intmax_t;
typedef unsigned __int64 uintmax_t;
# else
# include <stdint.h>
# endif
# if _MSC_VER < 1800 /* MSVC < 2013 */
typedef unsigned char _Bool;
# endif
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX)
# include <alloca.h>
# endif
#endif
( RRR>RRRtobjectRR$(((s6/usr/lib64/python2.7/site-packages/cffi/vengine_gen.pyt<module>s���