linux/drivers/hid/hid-u2fzero.c

// SPDX-License-Identifier: GPL-2.0
/*
 * U2F Zero LED and RNG driver
 *
 * Copyright 2018 Andrej Shadura <[email protected]>
 * Loosely based on drivers/hid/hid-led.c
 *              and drivers/usb/misc/chaoskey.c
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, version 2.
 */

#include <linux/hid.h>
#include <linux/hidraw.h>
#include <linux/hw_random.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/usb.h>

#include "usbhid/usbhid.h"
#include "hid-ids.h"

#define DRIVER_SHORT

#define HID_REPORT_SIZE

enum hw_revision {};

struct hw_revision_config {};

static const struct hw_revision_config hw_configs[] =;

/* We only use broadcast (CID-less) messages */
#define CID_BROADCAST

struct u2f_hid_msg {} __packed;

struct u2f_hid_report {} __packed;

#define U2F_HID_MSG_LEN(f)

struct u2fzero_device {};

static int u2fzero_send(struct u2fzero_device *dev, struct u2f_hid_report *req)
{}

struct u2fzero_transfer_context {};

static void u2fzero_read_callback(struct urb *urb)
{}

static int u2fzero_recv(struct u2fzero_device *dev,
			struct u2f_hid_report *req,
			struct u2f_hid_msg *resp)
{}

static int u2fzero_blink(struct led_classdev *ldev)
{}

static int u2fzero_brightness_set(struct led_classdev *ldev,
				  enum led_brightness brightness)
{}

static int u2fzero_rng_read(struct hwrng *rng, void *data,
			    size_t max, bool wait)
{}

static int u2fzero_init_led(struct u2fzero_device *dev,
			    unsigned int minor)
{}

static int u2fzero_init_hwrng(struct u2fzero_device *dev,
			      unsigned int minor)
{}

static int u2fzero_fill_in_urb(struct u2fzero_device *dev)
{}

static int u2fzero_probe(struct hid_device *hdev,
			 const struct hid_device_id *id)
{}

static void u2fzero_remove(struct hid_device *hdev)
{}

static const struct hid_device_id u2fzero_table[] =;
MODULE_DEVICE_TABLE(hid, u2fzero_table);

static struct hid_driver u2fzero_driver =;

module_hid_driver();

MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();