at v3.0 2.0 kB view raw
1/* 2 * Line6 Linux USB driver - 0.9.1beta 3 * 4 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License as 8 * published by the Free Software Foundation, version 2. 9 * 10 */ 11 12#ifndef DUMPREQUEST_H 13#define DUMPREQUEST_H 14 15#include <linux/usb.h> 16#include <linux/wait.h> 17#include <sound/core.h> 18 19enum { 20 LINE6_DUMP_NONE, 21 LINE6_DUMP_CURRENT 22}; 23 24struct line6_dump_reqbuf { 25 /** 26 Buffer for dump requests. 27 */ 28 unsigned char *buffer; 29 30 /** 31 Size of dump request. 32 */ 33 size_t length; 34}; 35 36/** 37 Provides the functionality to request channel/model/... dump data from a 38 Line6 device. 39*/ 40struct line6_dump_request { 41 /** 42 Wait queue for access to program dump data. 43 */ 44 wait_queue_head_t wait; 45 46 /** 47 Indicates an unfinished program dump request. 48 0: no dump 49 1: dump current settings 50 Other device-specific values are also allowed. 51 */ 52 int in_progress; 53 54 /** 55 Dump request buffers 56 */ 57 struct line6_dump_reqbuf reqbufs[1]; 58}; 59 60extern void line6_dump_finished(struct line6_dump_request *l6dr); 61extern int line6_dump_request_async(struct line6_dump_request *l6dr, 62 struct usb_line6 *line6, int num, int dest); 63extern void line6_dump_started(struct line6_dump_request *l6dr, int dest); 64extern void line6_dumpreq_destruct(struct line6_dump_request *l6dr); 65extern void line6_dumpreq_destructbuf(struct line6_dump_request *l6dr, int num); 66extern int line6_dumpreq_init(struct line6_dump_request *l6dr, const void *buf, 67 size_t len); 68extern int line6_dumpreq_initbuf(struct line6_dump_request *l6dr, 69 const void *buf, size_t len, int num); 70extern void line6_invalidate_current(struct line6_dump_request *l6dr); 71extern void line6_dump_wait(struct line6_dump_request *l6dr); 72extern int line6_dump_wait_interruptible(struct line6_dump_request *l6dr); 73extern int line6_dump_wait_timeout(struct line6_dump_request *l6dr, 74 long timeout); 75 76#endif