#ifndef SURFACE_HID_CORE_H
#define SURFACE_HID_CORE_H
#include <linux/hid.h>
#include <linux/pm.h>
#include <linux/types.h>
#include <linux/surface_aggregator/controller.h>
#include <linux/surface_aggregator/device.h>
enum surface_hid_descriptor_entry { … };
struct surface_hid_descriptor { … } __packed;
static_assert(…);
struct surface_hid_attributes { … } __packed;
static_assert(…);
struct surface_hid_device;
struct surface_hid_device_ops { … };
struct surface_hid_device { … };
int surface_hid_device_add(struct surface_hid_device *shid);
void surface_hid_device_destroy(struct surface_hid_device *shid);
extern const struct dev_pm_ops surface_hid_pm_ops;
#endif