#ifndef _USB_SERIAL_DRIVER_H_
#define _USB_SERIAL_DRIVER_H_
#include <Drivers.h>
#include <KernelExport.h>
#include <OS.h>
#include <USB3.h>
#include <usb/USB_cdc.h>
#include <lock.h>
#include <string.h>
#include "Tracing.h"
extern "C" {
#include <tty_module.h>
}
#define DRIVER_NAME "usb_serial"
#define DEVICES_COUNT 20
#define ROUNDUP(size, seg) (((size) + (seg) - 1) & ~((seg) - 1))
#define DEF_BUFFER_SIZE 0x200
extern usb_module_info *gUSBModule;
extern tty_module_info *gTTYModule;
extern struct ddomain gSerialDomain;
extern "C" {
status_t usb_serial_device_added(usb_device device, void **cookie);
status_t usb_serial_device_removed(void *cookie);
status_t init_hardware();
void uninit_driver();
bool usb_serial_service(struct tty *tty, uint32 op, void *buffer,
size_t length);
const char **publish_devices();
device_hooks *find_device(const char *name);
}
#endif