structprintf_arguments { int i ; double d ; char
*3s
&4; long long ll ; }; struct msghdr; struct iovec; struct
msghdr { void
*6msg_name
&7; int msg_namelen ; struct iovec
*9msg_iov
&10; int msg_iovlen ; void
*12msg_control
&13; int msg_controllen ; int msg_flags ; }; struct
iovec { char * iov_base ; int iov_len ; };
extern void __ccuredInit(void) ;
extern void abort_deepcopy(char * errmsg ) ; struct msghdr_COMPAT; struct iovec_COMPAT; struct
msghdr_COMPAT { void
*22msg_name
&23; int msg_namelen ; struct iovec_COMPAT * msg_iov ; int msg_iovlen ; void
*28msg_control
&29; int msg_controllen ; int msg_flags ; };
extern int recvmsg(int fd , struct msghdr_COMPAT
*32msg , int flags )
&33; static int /*1*/recvmsg_wrapper(int s , struct msghdr
*50fat_msg
&168, int flags )
&51; int foo(int fd , struct iovec
*34array
&37, int array_len )
&35;
int foo(int fd , struct iovec
*34array
&37, int array_len ) { struct msghdr msg
&39; struct iovec * foo___0 ; int tmp ; { msg.msg_name = 0; msg.msg_namelen = 0; msg.msg_iov
= array; msg.msg_iovlen = array_len; msg.msg_control = 0; msg.msg_controllen = 0; msg.msg_flags = 0; foo___0 = msg.msg_iov
+ 1; tmp = /*1*/recvmsg_wrapper (fd, & msg, 0); return (tmp); } }
extern void
*52malloc(int )
&53;
extern void free(void
*54 )
&55; struct
iovec_COMPAT { char * iov_base ; int iov_len ; }; extern void __deepcopy_msghdr_to_compat(struct msghdr_COMPAT
*59compat
&118, struct msghdr
*60fat
&119)
&61; static void __deepcopy_msghdr_from_compat(struct msghdr
*62fat
&78, struct msghdr_COMPAT
*63compat
&79)
&64; //
extern void
*72/*2*/__mkptr_size(void
*73p , unsigned int len )
&74; static void __deepcopy_iovec_from_compat(struct iovec * fat , struct iovec_COMPAT * compat ) ;
static void __deepcopy_iovec_from_compat(struct iovec * fat , struct iovec_COMPAT * compat ) { { fat->iov_len = compat->iov_len; fat->iov_base = (char * )/*2*/__mkptr_size ((void
*75)compat->iov_base, (unsigned int )compat->iov_len); return; } }
extern void
*95/*3*/__mkptr_size(void
*96p , unsigned int len )
&97;
extern void
*101/*4*/__mkptr_size(void
*102p , unsigned int len )
&103;
extern int /*5*/__ccured_has_empty_mangling(unsigned int ) ;
extern void
*109/*6*/__trusted_cast(unsigned int p )
&111;
extern void
*114/*7*/__mkptr_size(void
*115p , unsigned int len )
&116; static void __deepcopy_msghdr_from_compat(struct msghdr
*62fat
&78, struct msghdr_COMPAT
*63compat
&79)
&64;
static void __deepcopy_msghdr_from_compat(struct msghdr
*62fat
&78, struct msghdr_COMPAT
*63compat
&79) { int len ; int v ; struct iovec_COMPAT * iptr ; struct iovec_COMPAT * tmp ; int tmp___0 ; { fat->msg_namelen = compat->msg_namelen; fat->msg_iovlen = compat->msg_iovlen; fat->msg_controllen = compat->msg_controllen; fat->msg_flags = compat->msg_flags; fat->msg_name = (void
*6)/*3*/__mkptr_size ((void
*98)compat->msg_name, (unsigned int )compat->msg_namelen); fat->msg_control = (void
*12)/*4*/__mkptr_size ((void
*104)compat->msg_control, (unsigned int )compat->msg_controllen); tmp___0 = /*5*/__ccured_has_empty_mangling (sizeof((*(fat->msg_iov)))); if (tmp___0) { fat->msg_iov = (
struct iovec
*9)/*7*/__mkptr_size ((void
*117)compat->msg_iov, (unsigned int )compat->msg_iovlen * sizeof((*(fat->msg_iov)))); } else { len = compat->msg_iovlen; fat->msg_iov = (
struct iovec
*9)malloc ((int )((unsigned int )len * sizeof((*(fat->msg_iov))))); v = 0; while (v < len) { tmp = (struct iovec_COMPAT * )/*6*/__trusted_cast ((
void
*112)((unsigned long )compat->msg_iov + (unsigned long )((unsigned int )v * sizeof((*(compat->msg_iov)))))); iptr = tmp; __deepcopy_iovec_from_compat (fat->msg_iov + v, iptr); v = v + 1; } } return; } }
extern void
*129/*8*/__ptrof_nocheck(void
*130ptr )
&131;
extern int /*9*/__ccured_has_empty_mangling(unsigned int ) ;
extern void
*135/*10*/__trusted_cast(void
*136p )
&137;
extern void
*141/*11*/__ptrof_nocheck(void
*142ptr )
&143;
extern int /*12*/__ccured_has_empty_mangling(unsigned int ) ;
extern void
*147/*13*/__trusted_cast(void
*148p )
&149;
extern void
*153/*14*/__ptrof_nocheck(void
*154ptr )
&155;
extern int /*15*/__ccured_has_empty_mangling(unsigned int ) ;
extern void
*159/*16*/__trusted_cast(void
*160p )
&161; extern void __deepcopy_msghdr_to_compat(struct msghdr_COMPAT
*59compat
&118, struct msghdr
*60fat
&119)
&61;
extern void __deepcopy_msghdr_to_compat(struct msghdr_COMPAT
*59compat
&118, struct msghdr
*60fat
&119) { void
*120__cil_tmp3
&121; int dest_mangling4 ; struct iovec * __cil_tmp5 ; int dest_mangling6 ; void
*126__cil_tmp7
&127; int dest_mangling8 ; { __cil_tmp7 = (void
*126)/*8*/__ptrof_nocheck (fat->msg_name); if (! __cil_tmp7) { { compat->msg_name = 0; } } else { { dest_mangling8 = /*9*/__ccured_has_empty_mangling (sizeof((*__cil_tmp7))); if (dest_mangling8) { { compat->msg_name = (void
*22)/*10*/__trusted_cast (__cil_tmp7); } } else { { abort_deepcopy ((char * )"Abort deepcopy_to_compat for msghdr.msg_name"); } } } } compat->msg_namelen = fat->msg_namelen; __cil_tmp5 = (struct iovec * )/*11*/__ptrof_nocheck (
fat->msg_iov); if (! __cil_tmp5) { { compat->msg_iov = 0; } } else { { dest_mangling6 = /*12*/__ccured_has_empty_mangling (sizeof((*__cil_tmp5))); if (dest_mangling6) { { compat->msg_iov = (struct iovec_COMPAT * )/*13*/__trusted_cast (__cil_tmp5); } } else { { abort_deepcopy ((char * )"Abort deepcopy_to_compat for msghdr.msg_iov"); } } } } compat->msg_iovlen = fat->msg_iovlen; __cil_tmp3 = (void
*120)/*14*/__ptrof_nocheck (fat->msg_control); if (! __cil_tmp3) { { compat->msg_control = 0; } } else { { dest_mangling4 = /*15*/__ccured_has_empty_mangling (sizeof((*__cil_tmp3))); if (dest_mangling4) { { compat->msg_control = (void
*28)/*16*/__trusted_cast (__cil_tmp3); } } else { { abort_deepcopy ((char * )"Abort deepcopy_to_compat for msghdr.msg_control"); } } } } compat->msg_controllen = fat->msg_controllen; compat->msg_flags = fat->msg_flags; } }
extern void
*182/*17*/__ptrof_nocheck(void
*183ptr )
&184;
extern void
*186/*18*/__trusted_cast(void
*187p )
&188;
extern int /*19*/__ccured_has_empty_mangling(unsigned int ) ;
extern void
*191/*20*/__trusted_cast(void
*192p )
&193; static int /*1*/recvmsg_wrapper(int s , struct msghdr
*50fat_msg
&168, int flags )
&51;
static int /*1*/recvmsg_wrapper(int s , struct msghdr
*50fat_msg
&168, int flags ) { struct msghdr_COMPAT lean_msg__area
&170; struct msghdr
*171lean_msg__ptrof
&172; struct msghdr
*173tmp
&174; struct msghdr_COMPAT
*175lean_msg
&176; struct msghdr_COMPAT
*177tmp___2
&178; int tmp___4 ; int result ; int tmp___5 ; { tmp = (struct msghdr
*173)/*17*/__ptrof_nocheck ((void
*185)fat_msg); lean_msg__ptrof = tmp; if (lean_msg__ptrof) { tmp___4 = /*19*/__ccured_has_empty_mangling (sizeof(struct msghdr )); if (tmp___4) { tmp___2 = (struct msghdr_COMPAT
*177)/*20*/__trusted_cast ((void
*194)lean_msg__ptrof); } else { __deepcopy_msghdr_to_compat (& lean_msg__area, lean_msg__ptrof); tmp___2 = & lean_msg__area; } } else { tmp___2 = (struct msghdr_COMPAT
*177)/*18*/__trusted_cast ((void
*189)lean_msg__ptrof); } lean_msg = tmp___2; tmp___5 = recvmsg (s, lean_msg, flags); result = tmp___5; if ((unsigned int )lean_msg != (unsigned int )fat_msg) { __deepcopy_msghdr_from_compat (fat_msg, lean_msg); } if ((unsigned int )lean_msg->msg_iov != (unsigned int )fat_msg->msg_iov) { free ((void
*195)lean_msg->msg_iov); } return (result); } }