Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/cffi/__pycache__/vengine_gen.cpython-38.pyc

U

ل=^4h@sHddlZddlZddlZddlmZddlmZGdddeZdZ	dS)N)modelVerificationErrorc@seZdZdZdZddZddZddZd	d
ZdZdd
Z	ddZ
d[ddZddZddZ
ddZddZddZeZeZeZddZeZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Z d5d6Z!d7d8Z"d9d:Z#d\d=d>Z$d?d@Z%eZ&d]dAdBZ'dCdDZ(dEdFZ)dGdHZ*dIdJZ+d^dLdMZ,d_dNdOZ-dPdQZ.dRdSZ/eZ0dTdUZ1dVdWZ2eZ3dXdYZ4d;S)`VGenericEnginegFcCs||_|j|_g|_i|_dSN)verifierffiexport_symbols_struct_pending_verification)selfr	r/vengine_gen.py__init__szVGenericEngine.__init__cCs|d|jdS)Nr)
setdefaultr)r
kwdsrrrpatch_extension_kwdssz#VGenericEngine.patch_extension_kwdscCsT|D]J}||}|dkrtj}|D]*}tj||}tj|r"|Sq"qdSr)syspathosjoinisfile)r
Zmodule_namerZso_suffixesZ	so_suffixbasenamedirnamefilenamerrrfind_moduleszVGenericEngine.find_modulecCsdSrrr
rrr
collect_types%szVGenericEngine.collect_typescCs|j|ddS)N
)Z_fwrite)r
Zwhatrrr_prnt(szVGenericEngine._prntcCs`|j}|t||jj|dtjdkr\tjdkr>d}nd}|j}|d||fdS)NZdeclZwin32ZPyInit_Zinitzvoid %s%s(void) { }
)	r"cffimod_headerr	Zpreamble	_generaterplatformversion_infoZget_module_name)r
prntprefixmodnamerrrwrite_source_to_f+s



z VGenericEngine.write_source_to_frcsjjj}tjtjjj}|||	dGfdddt
jd}j	d|d|S)NZloadingcs&eZdZZjZgZfddZdS)z/VGenericEngine.load_library.<locals>.FFILibrarycsjSr)	_cffi_dirr)
FFILibraryrr__dir__Tsz7VGenericEngine.load_library.<locals>.FFILibrary.__dir__N)__name__
__module____qualname__Z_cffi_generic_moduler
Z	_cffi_ffir-r/rr.moduler
rrr.Psr.rZloadedlibrary)r
_backendrrrcurdirr	Zmodulefilenameload_library_loadtypes
ModuleType)r
flagsbackendrr6rr3rr9AszVGenericEngine.load_librarycCs$dd|jjjD}||S)NcSsg|]\}\}}||fqSrr).0keytpZqualrrr
<listcomp>^s
z4VGenericEngine._get_declarations.<locals>.<listcomp>)r
Z_parserZ
_declarationsitemssort)r
Zlstrrr_get_declarations]s
z VGenericEngine._get_declarationscCs|D]\}}|dd\}}zt|d||f}Wn tk
rVtd|YnXz|||Wqtk
r}zt||W5d}~XYqXqdS)N rz_generate_gen_%s_%sznot implemented in verify(): %r)rEsplitgetattrAttributeErrorr	Exceptionrattach_exception_info)r
	step_namenamerAkindrealnamemethoderrrr&cs
zVGenericEngine._generatec
Ks~|D]p\}}|dd\}}t|d||f}z||||f|Wqtk
rv}	zt|	|W5d}	~	XYqXqdS)NrFrz
_%s_gen_%s)rErGrHrJrrK)
r
r4rLrrMrArNrOrPrQrrrr:rszVGenericEngine._loadcCsdSrrr
rArMrrr_generate_nothing|sz VGenericEngine._generate_nothingcKsdSrrr
rArMr4rrrr_loaded_noopszVGenericEngine._loaded_noopcst|tjst|jr(|d||dS|j}t|j}g}t	|jD].\}}d}t|tj
rbd}|d||fqFd|fddt|j|D}	|j
}
t|
tj
r|	d|
d	tj}
d
|	pd}	d|}|j||jr|jd
}nd}d|||	f}
d|||
|
|dt|j
tj
r@d}nt|j
tjsVd}nd}|d||d
|f|d|dS)NFr*z%sx%dzargument of %scs g|]\}}|d|qS)z %s)
get_c_name)r?typeargcontextrrrBsz>VGenericEngine._generate_gen_function_decl.<locals>.<listcomp>rz *rz, Zvoid
_cffi_f_%srFz	 %s%s(%s)zresult of %s{z*r = zreturn z  %s%s(%s);})
isinstancerFunctionPtrTypeAssertionErrorellipsis_generate_gen_constr"lenargs	enumerate
StructOrUnionappendzipresultinsertrW	void_typerrabiZVoidType)r
rArMr)ZnumargsZargnamesirXZindirectionZarglistZtpresultwrappernamermZfuncdeclZresult_coderrZr_generate_gen_function_declsL


z*VGenericEngine._generate_gen_function_declcCsjt|tjst|jr*|d|||}n g}|}tdd|jDsVt|jtj	r
g}t
|jD]6\}	}
t|
tj	rt|
}
||	|
f||
qd|j}t|tj	r|j
dkrtd|ft|}|d||dd|ftj}tt|||j}|j|}d|}
|||
}|D]\}	}
|||	|
|}q.t|||t|j|dS)NFcss|]}t|tjVqdSr)r_rrg)r?typrrr	<genexpr>sz6VGenericEngine._loaded_gen_function.<locals>.<genexpr>z*'%s' is used as result type, but is opaquerrjr\)r_rr`rarb_load_constantanyrerjrgrfPointerTyperhZfldtypes	TypeError_get_c_namerkrltupler
_get_cached_btype
load_function_make_struct_wrappersetattrrXr-)r
rArMr4r6ZnewfunctionZindirectionsbase_tpZ
indirect_argsrnrqZindirect_resultBFuncrorrr_loaded_gen_functionsL




z#VGenericEngine._loaded_gen_functioncsP|jj|j|dkr4|jfdd}nfdd}||_|S)Nrjcs }|f||dSNr)new)reres)BTyper
oldfuncrrnewfuncs
z4VGenericEngine._make_struct_wrapper.<locals>.newfunccs6|d|f|dd}|S)Nr)Znewp)re)rr>rnrrrrs.)r
r7ryZ_cffi_base_type)r
rrnrAr}rr)rr>r
rnrrr{sz#VGenericEngine._make_struct_wrappercCs ||jkst||d|dSNstructrMra_generate_struct_or_union_declrRrrr_generate_gen_struct_declsz(VGenericEngine._generate_gen_struct_declcCs||d||dSr_loading_struct_or_unionr
rArMr4rrr_loading_gen_structsz"VGenericEngine._loading_gen_structcKs||dSr_loaded_struct_or_unionrTrrr_loaded_gen_structsz!VGenericEngine._loaded_gen_structcCs ||jkst||d|dSNunionrrRrrr_generate_gen_union_declsz'VGenericEngine._generate_gen_union_declcCs||d||dSrrrrrr_loading_gen_unionsz!VGenericEngine._loading_gen_unioncKs||dSrrrTrrr_loaded_gen_unionsz VGenericEngine._loaded_gen_unionc
Cs|jdkrdSd||f}d||f}d||f}|j}|d||f|d|d|d|D]\}}	}
}t|	tjr|	s|
dkr|d	|qlz$|d
|	jdd||d
|fWqlt	k
r}z|dt
|W5d}~XYqlXql|d|j||d|f|d|d||d|d||d|D]h\}}	}
}|
dkrpqV|d||ft|	tj
r|	jdkr|d|	n|d||fqV|d|d|d|d|d|f|d|dS)Nz_cffi_check_%s_%s_cffi_layout_%s_%s%s %szstatic void %s(%s *p)r]z8  /* only to generate compile-time warnings or errors */z
  (void)p;rz  (void)((p->%s) << 1);z  { %s = &p->%s; (void)tmp; }z*tmpzfield %r)Zqualsz
  /* %s */r^zintptr_t %s(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(%s, %s),z    0,  /* %s */z    sizeof(((%s *)0)->%s),z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */z  %s(0);)fldnamesstripr"
enumfieldsr_r
PrimitiveTypeis_integer_typerWrstrrrh	ArrayTypelengthrw)
r
rAr*rMZ
checkfuncnamelayoutfuncnamecnamer)fnameftypefbitsizefqualrQrrrrs\
$
z-VGenericEngine._generate_struct_or_union_declcCs|jdkrdSd||f}|jdd}|||}g}d}	||	}
|
dkrPqd||
|	d7}	q>t|tjr|jr|d}|d}|ddd}
|ddd}|	t
|
t
|krt
|jksnt|
|||f|_nd||f
}||f|j|<dS)Nrzintptr_t(*)(intptr_t)rrr$r)rr
_typeof_lockedrzrhr_rrgpartialZ
force_flattenrdraZfixedlayoutrr)r
rAr*rMr4rr~functionlayoutZnumxZ	totalsizeZtotalalignmentZfieldofsZ	fieldsizerrrrr7s,


(z'VGenericEngine._loading_struct_or_unionc
Cs|jdkrdS|j|||jkrdd}|j}||}|j|\}}||d||d||d||dd}|D]v\}}	}
}|
dkrq||||||d|f||ddkr||	}|||d||d	|f|d7}q|t	|kst
dS)
NcSs||krtd|||fdS)Nz'%s (we have %d, but C compiler says %d)r)Z	realvalueZ
expectedvaluemsgrrrcheckZsz5VGenericEngine._loaded_struct_or_union.<locals>.checkrzwrong total sizerzwrong total alignmentrzwrong offset for field %rzwrong size for field %r)rr
ryrpopsizeofZalignofrZoffsetofrdra)
r
rArr
ZBStructrrrnrrrrZBFieldrrrrSs0



z&VGenericEngine._loaded_struct_or_unioncCs.t|tjr|||dn||d|dSNr)r_rEnumType_generate_gen_enum_declrrRrrr_generate_gen_anonymous_declusz+VGenericEngine._generate_gen_anonymous_declcCs2t|tjr||||dn||d||dSr)r_rr_loading_gen_enumrrrrr_loading_gen_anonymous{sz%VGenericEngine._loading_gen_anonymouscKs.t|tjr |j|||f|n
||dSr)r_rr_loaded_gen_enumrrTrrr_loaded_gen_anonymoussz$VGenericEngine._loaded_gen_anonymousNconstc
CsF|j}d||f}|j||dk	rl|s.t|dks:t|d||d||||d|dn|r|dks|t|d||d|d|f|d	|f|dn|dk	st|dkst|d
krd}nd}d}	|dkrt|tjrd
}	d}||d|	|f||d|d||f|d|dS)Nz_cffi_%s_%srint %s(char *out_error)r]  return 0;r^zint %s(long long *out_value)z  *out_value = (long long)(%s);z  return (%s) <= 0;var&rzconst *z %s%s(void)z  return (%s%s);)	r"rrhra_check_int_constant_valuer_rrgrW)
r
is_intrMrAcategorycheck_valuer)funcnameZ	ampersandZextrarrrrcs@

z"VGenericEngine._generate_gen_constcCs&t|tjo|}||||dSr)r_rrrrc)r
rArMrrrr_generate_gen_constant_declsz*VGenericEngine._generate_gen_constant_declcCsd|}|dk	r*|st||||}n|r|jdd}|jdd}	||	|}
|j|}|
|}t|d}|dkr|s|jdd}
|dd|j|
>7}nd|dkstd}t|t	j
rd	|}|j|||d}	||	|}
|
}t|t	j
r|d}|S)
Nz_cffi_const_%sz
long long*rzint(*)(long long*)z	long longrz	(*)(void)rV)ra_load_known_int_constantr
rrzrintrr_rrgrW)r
rrArMr4rrvaluerr~rpnegativeZ	BLongLongZfntypeextrarrrrss2zVGenericEngine._load_constantcCsDt|tjo|}|||||}t|||t|j|dSr)	r_rrrrsr|rXr-rh)r
rArMr4r6rrrrr_loaded_gen_constantsz#VGenericEngine._loaded_gen_constantcCs|j}|dkr"|d|||fn|d|||f|d|d||d||d|d||d	|d
|dd|f|d|d
dS)Nrz&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");dz    return -1;z  })r")r
rMrr)rrrrs.
z(VGenericEngine._check_int_constant_valuecCsr|jdd}|jdd}|||}|j|d}||dkrn|j|}tjdkrft|d}t|dS)Nzchar[]rz
int(*)(char*)r#zutf-8)	r
rrzrstringrr(rr)r
r4rrr~rrerrorrrrrs

z'VGenericEngine._load_known_int_constantcCs|dd}d||fS)N$Z___D_z
_cffi_e_%s_%s)replace)r
r*rMrrr_enum_funcnameszVGenericEngine._enum_funcnameenumcCs|jr"|jD]}|d|qdS|||}|j||j}|d||dt|j|jD]\}}|	||qb|d|d|dS)NTrr]rr^)
renumeratorsrcrrrhr"ri
enumvaluesr)r
rArMr*
enumeratorrr)	enumvaluerrrrs
z&VGenericEngine._generate_gen_enum_declcsLjr0fddjD}t|_d_n||}|dS)Ncsg|]}d|qS)T)rs)r?rr4r
rArrrBsz4VGenericEngine._loading_gen_enum.<locals>.<listcomp>T)rrrxrZpartial_resolvedrr)r
rArMr4r*rrrrrrs
z VGenericEngine._loading_gen_enumcCs8t|j|jD]$\}}t|||t|j|qdSr)rirrr|rXr-rh)r
rArMr4r6rrrrrrszVGenericEngine._loaded_gen_enumcCs&|dkrd}n|}|jd||ddSN...T)r)rc)r
rArMrrrr_generate_gen_macro_decl sz'VGenericEngine._generate_gen_macro_declcCsF|dkrd}n|}|jd||||d}t|||t|j|dSr)rsr|rXr-rh)r
rArMr4r6rrrrr_loaded_gen_macro)sz VGenericEngine._loaded_gen_macrocCst|tjrx|jdkr\|j}d|f}|j||d||d|d|f|dt|j}|	d||nt|}|j	d||dd	dS)
Nr_cffi_sizeof_%szsize_t %s(void)r]z  return sizeof(%s);r^Fr)r)
r_rrrr"rrhruitemrc)r
rArMr)rtp_ptrrrr_generate_gen_variable_decl6s


z*VGenericEngine._generate_gen_variable_declcs^t|tjr|jdkrd|f}|jdd}|||}|}|j|j}	t	||j
|	\}
}|dkrtd||jf||
}t
|j}|d|||}
|jdk	r|j|}|j||
}
t|||
t|j|dSd|}|j|d|d}|||}|fd	d
}fdd}tt||t||t|j|dS)
Nrrzsize_t(*)(void)rz/bad size: %r does not seem to be an array of %sFz_cffi_var_%sz
*(*)(void)csdSrrr5Zptrrrgettergsz3VGenericEngine._loaded_gen_variable.<locals>.gettercs|d<dSrr)r6rrrrsetterisz3VGenericEngine._loaded_gen_variable.<locals>.setter)r_rrrr
rrzryrdivmodrrZresolve_lengthrurscastr|rXr-rhrWproperty)r
rArMr4r6rr~rsizeZ	BItemTyperrestrrZBArrayrrrrr_loaded_gen_variableHs>



z#VGenericEngine._loaded_gen_variable)r)r)NrN)N)r)r)5r0r1r2Z
_class_keyZ_gen_python_modulerrrrr"r,r9rEr&r:rSrUZ_generate_gen_typedef_declZ_loading_gen_typedefZ_loaded_gen_typedefrpZ_loading_gen_functionrr{rrrrrrrrrrrrrcrZ_loading_gen_constantrsrrrrrrrrZ_loading_gen_macrorrZ_loading_gen_variablerrrrrrsh



-$1"	
%
	



rad
#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
   and cffi/_cffi_include.h */
#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 */
#  ifndef __cplusplus
    typedef unsigned char _Bool;
#  endif
# endif
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
#endif
)
rrr;rrrrobjectrr%rrrr<module>sg
Back to Directory File Manager