1(foreign-declare "#include <libusb.h>")23(define-foreign-type vid unsigned-short)4(define-foreign-type pid unsigned-short)56(define-foreign-type libusb-ctx (c-pointer "libusb_context"))7(define-foreign-type libusb-handle (c-pointer "libusb_device_handle"))89(define libusb-init10 (foreign-lambda void "libusb_init" (c-pointer libusb-ctx)))11(define libusb-open12 (foreign-lambda libusb-handle "libusb_open_device_with_vid_pid" libusb-ctx vid pid))13(define libusb-auto-detach14 (foreign-lambda void "libusb_set_auto_detach_kernel_driver" libusb-handle int))1516(define libusb-claim17 (foreign-lambda int "libusb_claim_interface" libusb-handle int))18(define libusb-release19 (foreign-lambda int "libusb_release_interface" libusb-handle int))2021(define libusb-irq-transfer22 (foreign-lambda23 int24 "libusb_interrupt_transfer"25 libusb-handle26 unsigned-byte27 nonnull-u8vector28 int29 (c-pointer int)30 unsigned-int))3132(define libusb-close33 (foreign-lambda void "libusb_close" libusb-handle))34(define libusb-exit35 (foreign-lambda void "libusb_exit" libusb-ctx))