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

midi.h (1118B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Line 6 Linux USB driver
      4 *
      5 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
      6 */
      7
      8#ifndef MIDI_H
      9#define MIDI_H
     10
     11#include <sound/rawmidi.h>
     12
     13#include "midibuf.h"
     14
     15#define MIDI_BUFFER_SIZE 1024
     16
     17struct snd_line6_midi {
     18	/* Pointer back to the Line 6 driver data structure */
     19	struct usb_line6 *line6;
     20
     21	/* MIDI substream for receiving (or NULL if not active) */
     22	struct snd_rawmidi_substream *substream_receive;
     23
     24	/* MIDI substream for transmitting (or NULL if not active) */
     25	struct snd_rawmidi_substream *substream_transmit;
     26
     27	/* Number of currently active MIDI send URBs */
     28	int num_active_send_urbs;
     29
     30	/* Spin lock to protect MIDI buffer handling */
     31	spinlock_t lock;
     32
     33	/* Wait queue for MIDI transmission */
     34	wait_queue_head_t send_wait;
     35
     36	/* Buffer for incoming MIDI stream */
     37	struct midi_buffer midibuf_in;
     38
     39	/* Buffer for outgoing MIDI stream */
     40	struct midi_buffer midibuf_out;
     41};
     42
     43extern int line6_init_midi(struct usb_line6 *line6);
     44extern void line6_midi_receive(struct usb_line6 *line6, unsigned char *data,
     45			       int length);
     46
     47#endif