#define pr_fmt(fmt) …
#include <linux/acpi.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/ptp_clock_kernel.h>
#include <asm/hypervisor.h>
#include <asm/vmware.h>
#define VMWARE_CMD_PCLK(nr) …
#define VMWARE_CMD_PCLK_GETTIME …
static struct acpi_device *ptp_vmw_acpi_device;
static struct ptp_clock *ptp_vmw_clock;
static int ptp_vmw_pclk_read(u64 *ns)
{ … }
static int ptp_vmw_adjtime(struct ptp_clock_info *info, s64 delta)
{ … }
static int ptp_vmw_adjfine(struct ptp_clock_info *info, long delta)
{ … }
static int ptp_vmw_gettime(struct ptp_clock_info *info, struct timespec64 *ts)
{ … }
static int ptp_vmw_settime(struct ptp_clock_info *info,
const struct timespec64 *ts)
{ … }
static int ptp_vmw_enable(struct ptp_clock_info *info,
struct ptp_clock_request *request, int on)
{ … }
static struct ptp_clock_info ptp_vmw_clock_info = …;
static int ptp_vmw_acpi_add(struct acpi_device *device)
{ … }
static void ptp_vmw_acpi_remove(struct acpi_device *device)
{ … }
static const struct acpi_device_id ptp_vmw_acpi_device_ids[] = …;
MODULE_DEVICE_TABLE(acpi, ptp_vmw_acpi_device_ids);
static struct acpi_driver ptp_vmw_acpi_driver = …;
static int __init ptp_vmw_init(void)
{ … }
static void __exit ptp_vmw_exit(void)
{ … }
module_init(…) …;
module_exit(ptp_vmw_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;