177c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#include "defs.h" 277c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 377c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#include DEF_MPERS_TYPE(struct_keyctl_kdf_params) 477c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 577c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#include "keyctl_kdf_params.h" 677c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughestypedef struct keyctl_kdf_params struct_keyctl_kdf_params; 777c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 877c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#include MPERS_DEFS 977c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 1077c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott HughesMPERS_PRINTER_DECL(int, fetch_keyctl_kdf_params, struct tcb *const tcp, 1177c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes kernel_ulong_t addr, struct strace_keyctl_kdf_params *p) 1277c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes{ 1377c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes struct_keyctl_kdf_params kdf; 1477c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes int ret; 1577c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 1677c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes if ((ret = umove(tcp, addr, &kdf))) 1777c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes return ret; 1877c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 1977c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes p->hashname = (kernel_ulong_t) 2077c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#ifndef IN_MPERS 2177c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes (uintptr_t) 2277c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#endif 2377c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes kdf.hashname; 2477c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes p->otherinfo = (kernel_ulong_t) 2577c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#ifndef IN_MPERS 2677c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes (uintptr_t) 2777c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes#endif 2877c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes kdf.otherinfo; 2977c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes p->otherinfolen = kdf.otherinfolen; 3077c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 3177c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes memcpy(p->__spare, kdf.__spare, sizeof(kdf.__spare)); 3277c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes 3377c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes return 0; 3477c3ff8e0644f1e120e4b2ebc7222150b0446f3bElliott Hughes} 35