cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mantis_link.h (1743B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3	Mantis PCI bridge driver
      4
      5	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
      6
      7*/
      8
      9#ifndef __MANTIS_LINK_H
     10#define __MANTIS_LINK_H
     11
     12#include <linux/mutex.h>
     13#include <linux/workqueue.h>
     14#include <media/dvb_ca_en50221.h>
     15
     16enum mantis_sbuf_status {
     17	MANTIS_SBUF_DATA_AVAIL		= 1,
     18	MANTIS_SBUF_DATA_EMPTY		= 2,
     19	MANTIS_SBUF_DATA_OVFLW		= 3
     20};
     21
     22struct mantis_slot {
     23	u32				timeout;
     24	u32				slave_cfg;
     25	u32				bar;
     26};
     27
     28/* Physical layer */
     29enum mantis_slot_state {
     30	MODULE_INSERTED			= 3,
     31	MODULE_XTRACTED			= 4
     32};
     33
     34struct mantis_ca {
     35	struct mantis_slot		slot[4];
     36
     37	struct work_struct		hif_evm_work;
     38
     39	u32				hif_event;
     40	wait_queue_head_t		hif_opdone_wq;
     41	wait_queue_head_t		hif_brrdyw_wq;
     42	wait_queue_head_t		hif_data_wq;
     43	wait_queue_head_t		hif_write_wq; /* HIF Write op */
     44
     45	enum mantis_sbuf_status		sbuf_status;
     46
     47	enum mantis_slot_state		slot_state;
     48
     49	void				*ca_priv;
     50
     51	struct dvb_ca_en50221		en50221;
     52	struct mutex			ca_lock;
     53};
     54
     55/* CA */
     56extern void mantis_event_cam_plugin(struct mantis_ca *ca);
     57extern void mantis_event_cam_unplug(struct mantis_ca *ca);
     58extern int mantis_pcmcia_init(struct mantis_ca *ca);
     59extern void mantis_pcmcia_exit(struct mantis_ca *ca);
     60extern int mantis_evmgr_init(struct mantis_ca *ca);
     61extern void mantis_evmgr_exit(struct mantis_ca *ca);
     62
     63/* HIF */
     64extern int mantis_hif_init(struct mantis_ca *ca);
     65extern void mantis_hif_exit(struct mantis_ca *ca);
     66extern int mantis_hif_read_mem(struct mantis_ca *ca, u32 addr);
     67extern int mantis_hif_write_mem(struct mantis_ca *ca, u32 addr, u8 data);
     68extern int mantis_hif_read_iom(struct mantis_ca *ca, u32 addr);
     69extern int mantis_hif_write_iom(struct mantis_ca *ca, u32 addr, u8 data);
     70
     71#endif /* __MANTIS_LINK_H */