usb.h (1172B)
1 /* usb.h 2 * 3 * Copyright 2014 Brian Swetland <swetland@frotz.net> 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 #ifndef _USB_H_ 19 #define _USB_H_ 20 21 #include <stdint.h> 22 23 typedef struct usb_handle usb_handle; 24 25 /* simple usb api for devices with bulk in+out interfaces */ 26 27 usb_handle *usb_open(unsigned vid, unsigned pid, unsigned ifc); 28 void usb_close(usb_handle *usb); 29 int usb_read(usb_handle *usb, void *data, int len); 30 int usb_read_forever(usb_handle *usb, void *data, int len); 31 int usb_write(usb_handle *usb, const void *data, int len); 32 int usb_ctrl(usb_handle *usb, void *data, 33 uint8_t typ, uint8_t req, uint16_t val, uint16_t idx, uint16_t len); 34 #endif