1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NITROX_COMMON_H
3 #define __NITROX_COMMON_H
4 
5 #include "nitrox_dev.h"
6 #include "nitrox_req.h"
7 
8 int nitrox_crypto_register(void);
9 void nitrox_crypto_unregister(void);
10 void *crypto_alloc_context(struct nitrox_device *ndev);
11 void crypto_free_context(void *ctx);
12 struct nitrox_device *nitrox_get_first_device(void);
13 void nitrox_put_device(struct nitrox_device *ndev);
14 
15 void nitrox_pf_cleanup_isr(struct nitrox_device *ndev);
16 int nitrox_pf_init_isr(struct nitrox_device *ndev);
17 
18 int nitrox_common_sw_init(struct nitrox_device *ndev);
19 void nitrox_common_sw_cleanup(struct nitrox_device *ndev);
20 
21 void pkt_slc_resp_handler(unsigned long data);
22 int nitrox_process_se_request(struct nitrox_device *ndev,
23 			      struct se_crypto_request *req,
24 			      completion_t cb,
25 			      struct skcipher_request *skreq);
26 void backlog_qflush_work(struct work_struct *work);
27 
28 void nitrox_config_emu_unit(struct nitrox_device *ndev);
29 void nitrox_config_pkt_input_rings(struct nitrox_device *ndev);
30 void nitrox_config_pkt_solicit_ports(struct nitrox_device *ndev);
31 void nitrox_config_vfmode(struct nitrox_device *ndev, int mode);
32 void nitrox_config_nps_unit(struct nitrox_device *ndev);
33 void nitrox_config_pom_unit(struct nitrox_device *ndev);
34 void nitrox_config_rand_unit(struct nitrox_device *ndev);
35 void nitrox_config_efl_unit(struct nitrox_device *ndev);
36 void nitrox_config_bmi_unit(struct nitrox_device *ndev);
37 void nitrox_config_bmo_unit(struct nitrox_device *ndev);
38 void nitrox_config_lbc_unit(struct nitrox_device *ndev);
39 void invalidate_lbc(struct nitrox_device *ndev);
40 void enable_pkt_input_ring(struct nitrox_device *ndev, int ring);
41 void enable_pkt_solicit_port(struct nitrox_device *ndev, int port);
42 
43 #endif /* __NITROX_COMMON_H */
44