libnjb  2.2.7
Macros | Functions | Variables
usb_io.c File Reference
#include <string.h>
#include <stdint.h>
#include <usb.h>
#include "base.h"
#include "libnjb.h"
#include "ioutil.h"
#include "usb_io.h"
#include "njb_error.h"

Macros

#define USB_DP_HTD   (0x00 << 7) /* host to device */
 
#define USB_DP_DTH   (0x01 << 7) /* device to host */
 
#define USB_FEATURE_HALT   0x00
 

Functions

ssize_t usb_pipe_write (njb_t *njb, void *buf, size_t nbytes)
 
ssize_t usb_pipe_read (njb_t *njb, void *buf, size_t nbytes)
 
int usb_setup (njb_t *njb, int type, int request, int value, int index, int length, void *data)
 

Variables

int __sub_depth
 

Detailed Description

This file contain some USB-specific code that is used by all devices.

Function Documentation

◆ usb_pipe_read()

ssize_t usb_pipe_read ( njb_t njb,
void *  buf,
size_t  nbytes 
)

This function reads a chunk of bytes to a buffer from a device's IN endpoint.

Parameters
njbthe jukebox object to use
bufthe buffer to store the bytes in
nbytesthe number of bytes to read in
Returns
the number of bytes actually read

References DD_USBBLK, DD_USBBLKLIM, njb_struct::dev, njb_debug(), and njb_struct::usb_bulk_in_ep.

Referenced by njb3_get_file_block(), njb_ping(), njb_read_eaxtypes(), and njb_receive_file_block().

◆ usb_pipe_write()

ssize_t usb_pipe_write ( njb_t njb,
void *  buf,
size_t  nbytes 
)

This function writes a number of bytes from a buffer to a devices OUT endpoint.

Parameters
njbthe jukebox object to use
bufthe buffer to send bytes from
nbytesthe number of bytes to write
Returns
the number of bytes actually written

References data_dump_ascii(), DD_USBBLK, DD_USBBLKLIM, njb_struct::dev, njb_debug(), and njb_struct::usb_bulk_out_ep.

◆ usb_setup()

int usb_setup ( njb_t njb,
int  type,
int  request,
int  value,
int  index,
int  length,
void *  data 
)

Variable Documentation

◆ __sub_depth

int __sub_depth
extern

The current subroutine depth for all of libnjb (global)

Referenced by usb_setup().