#include <linux/kernel.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/pci.h>
#include "../vsec.h"
#include "class.h"
#define PMT_XA_START …
#define PMT_XA_MAX …
#define PMT_XA_LIMIT …
#define GUID_SPR_PUNIT …
bool intel_pmt_is_early_client_hw(struct device *dev)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static inline int
pmt_memcpy64_fromio(void *to, const u64 __iomem *from, size_t count)
{ … }
static ssize_t
intel_pmt_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr, char *buf, loff_t off,
size_t count)
{ … }
static int
intel_pmt_mmap(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr, struct vm_area_struct *vma)
{ … }
static ssize_t
guid_show(struct device *dev, struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR_RO(guid);
static ssize_t size_show(struct device *dev, struct device_attribute *attr,
char *buf)
{ … }
static DEVICE_ATTR_RO(size);
static ssize_t
offset_show(struct device *dev, struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR_RO(offset);
static struct attribute *intel_pmt_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static struct class intel_pmt_class = …;
static int intel_pmt_populate_entry(struct intel_pmt_entry *entry,
struct intel_vsec_device *ivdev,
struct resource *disc_res)
{ … }
static int intel_pmt_dev_register(struct intel_pmt_entry *entry,
struct intel_pmt_namespace *ns,
struct device *parent)
{ … }
int intel_pmt_dev_create(struct intel_pmt_entry *entry, struct intel_pmt_namespace *ns,
struct intel_vsec_device *intel_vsec_dev, int idx)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void intel_pmt_dev_destroy(struct intel_pmt_entry *entry,
struct intel_pmt_namespace *ns)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static int __init pmt_class_init(void)
{ … }
static void __exit pmt_class_exit(void)
{ … }
module_init(…) …;
module_exit(pmt_class_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;