1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * drivers/hyperhold/hp_device.h 4 * 5 * Copyright (c) 2020-2022 Huawei Technologies Co., Ltd. 6 */ 7 8#ifndef _HP_DEVICE_H_ 9#define _HP_DEVICE_H_ 10 11#include <linux/kernel.h> 12#include <linux/blkdev.h> 13#include <crypto/skcipher.h> 14 15enum { 16 HP_DEV_ENCRYPT, 17 HP_DEV_DECRYPT, 18}; 19 20struct hp_device { 21 struct file *filp; 22 struct block_device *bdev; 23 u32 old_block_size; 24 u64 dev_size; 25 u32 sec_size; 26 27 struct crypto_skcipher *ctfm; 28 struct blk_crypto_key *blk_key; 29}; 30 31void unbind_bdev(struct hp_device *dev); 32bool bind_bdev(struct hp_device *dev, const char *name); 33bool crypto_init(struct hp_device *dev, bool soft); 34void crypto_deinit(struct hp_device *dev); 35int soft_crypt_page(struct crypto_skcipher *ctfm, 36 struct page *dst_page, struct page *src_page, unsigned int op); 37void inline_crypt_bio(struct blk_crypto_key *blk_key, struct bio *bio); 38#endif 39