162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * pcrypt - Parallel crypto engine. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2009 secunet Security Networks AG 662306a36Sopenharmony_ci * Copyright (C) 2009 Steffen Klassert <steffen.klassert@secunet.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef _CRYPTO_PCRYPT_H 1062306a36Sopenharmony_ci#define _CRYPTO_PCRYPT_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <linux/container_of.h> 1362306a36Sopenharmony_ci#include <linux/crypto.h> 1462306a36Sopenharmony_ci#include <linux/padata.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistruct pcrypt_request { 1762306a36Sopenharmony_ci struct padata_priv padata; 1862306a36Sopenharmony_ci void *data; 1962306a36Sopenharmony_ci void *__ctx[] CRYPTO_MINALIGN_ATTR; 2062306a36Sopenharmony_ci}; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_cistatic inline void *pcrypt_request_ctx(struct pcrypt_request *req) 2362306a36Sopenharmony_ci{ 2462306a36Sopenharmony_ci return req->__ctx; 2562306a36Sopenharmony_ci} 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistatic inline 2862306a36Sopenharmony_cistruct padata_priv *pcrypt_request_padata(struct pcrypt_request *req) 2962306a36Sopenharmony_ci{ 3062306a36Sopenharmony_ci return &req->padata; 3162306a36Sopenharmony_ci} 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistatic inline 3462306a36Sopenharmony_cistruct pcrypt_request *pcrypt_padata_request(struct padata_priv *padata) 3562306a36Sopenharmony_ci{ 3662306a36Sopenharmony_ci return container_of(padata, struct pcrypt_request, padata); 3762306a36Sopenharmony_ci} 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci#endif 40