#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sizes.h>
#include <linux/slab.h>
#include <linux/tee_drv.h>
#include <linux/uuid.h>
#include <linux/firmware/broadcom/tee_bnxt_fw.h>
#define MAX_SHM_MEM_SZ …
#define MAX_TEE_PARAM_ARRY_MEMB …
enum ta_cmd { … };
struct tee_bnxt_fw_private { … };
static struct tee_bnxt_fw_private pvt_data;
static void prepare_args(int cmd,
struct tee_ioctl_invoke_arg *arg,
struct tee_param *param)
{ … }
int tee_bnxt_fw_load(void)
{ … }
EXPORT_SYMBOL(…);
int tee_bnxt_copy_coredump(void *buf, u32 offset, u32 size)
{ … }
EXPORT_SYMBOL(…);
static int optee_ctx_match(struct tee_ioctl_version_data *ver, const void *data)
{ … }
static int tee_bnxt_fw_probe(struct device *dev)
{ … }
static int tee_bnxt_fw_remove(struct device *dev)
{ … }
static void tee_bnxt_fw_shutdown(struct device *dev)
{ … }
static const struct tee_client_device_id tee_bnxt_fw_id_table[] = …;
MODULE_DEVICE_TABLE(tee, tee_bnxt_fw_id_table);
static struct tee_client_driver tee_bnxt_fw_driver = …;
static int __init tee_bnxt_fw_mod_init(void)
{ … }
static void __exit tee_bnxt_fw_mod_exit(void)
{ … }
module_init(…) …;
module_exit(tee_bnxt_fw_mod_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;