# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.2.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _ftdi
else:
    import _ftdi

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)



def new_uintp():
    return _ftdi.new_uintp()

def copy_uintp(value):
    return _ftdi.copy_uintp(value)

def delete_uintp(obj):
    return _ftdi.delete_uintp(obj)

def uintp_assign(obj, value):
    return _ftdi.uintp_assign(obj, value)

def uintp_value(obj):
    return _ftdi.uintp_value(obj)

def new_ucharp():
    return _ftdi.new_ucharp()

def copy_ucharp(value):
    return _ftdi.copy_ucharp(value)

def delete_ucharp(obj):
    return _ftdi.delete_ucharp(obj)

def ucharp_assign(obj, value):
    return _ftdi.ucharp_assign(obj, value)

def ucharp_value(obj):
    return _ftdi.ucharp_value(obj)

def new_charp():
    return _ftdi.new_charp()

def copy_charp(value):
    return _ftdi.copy_charp(value)

def delete_charp(obj):
    return _ftdi.delete_charp(obj)

def charp_assign(obj, value):
    return _ftdi.charp_assign(obj, value)

def charp_value(obj):
    return _ftdi.charp_value(obj)
FTDI_DEFAULT_EEPROM_SIZE = _ftdi.FTDI_DEFAULT_EEPROM_SIZE
TYPE_AM = _ftdi.TYPE_AM
TYPE_BM = _ftdi.TYPE_BM
TYPE_2232C = _ftdi.TYPE_2232C
TYPE_R = _ftdi.TYPE_R
TYPE_2232H = _ftdi.TYPE_2232H
TYPE_4232H = _ftdi.TYPE_4232H
TYPE_232H = _ftdi.TYPE_232H
NONE = _ftdi.NONE
ODD = _ftdi.ODD
EVEN = _ftdi.EVEN
MARK = _ftdi.MARK
SPACE = _ftdi.SPACE
STOP_BIT_1 = _ftdi.STOP_BIT_1
STOP_BIT_15 = _ftdi.STOP_BIT_15
STOP_BIT_2 = _ftdi.STOP_BIT_2
BITS_7 = _ftdi.BITS_7
BITS_8 = _ftdi.BITS_8
BREAK_OFF = _ftdi.BREAK_OFF
BREAK_ON = _ftdi.BREAK_ON
BITMODE_RESET = _ftdi.BITMODE_RESET
BITMODE_BITBANG = _ftdi.BITMODE_BITBANG
BITMODE_MPSSE = _ftdi.BITMODE_MPSSE
BITMODE_SYNCBB = _ftdi.BITMODE_SYNCBB
BITMODE_MCU = _ftdi.BITMODE_MCU
BITMODE_OPTO = _ftdi.BITMODE_OPTO
BITMODE_CBUS = _ftdi.BITMODE_CBUS
BITMODE_SYNCFF = _ftdi.BITMODE_SYNCFF
INTERFACE_ANY = _ftdi.INTERFACE_ANY
INTERFACE_A = _ftdi.INTERFACE_A
INTERFACE_B = _ftdi.INTERFACE_B
INTERFACE_C = _ftdi.INTERFACE_C
INTERFACE_D = _ftdi.INTERFACE_D
AUTO_DETACH_SIO_MODULE = _ftdi.AUTO_DETACH_SIO_MODULE
DONT_DETACH_SIO_MODULE = _ftdi.DONT_DETACH_SIO_MODULE
MPSSE_WRITE_NEG = _ftdi.MPSSE_WRITE_NEG
MPSSE_BITMODE = _ftdi.MPSSE_BITMODE
MPSSE_READ_NEG = _ftdi.MPSSE_READ_NEG
MPSSE_LSB = _ftdi.MPSSE_LSB
MPSSE_DO_WRITE = _ftdi.MPSSE_DO_WRITE
MPSSE_DO_READ = _ftdi.MPSSE_DO_READ
MPSSE_WRITE_TMS = _ftdi.MPSSE_WRITE_TMS
SET_BITS_LOW = _ftdi.SET_BITS_LOW
SET_BITS_HIGH = _ftdi.SET_BITS_HIGH
GET_BITS_LOW = _ftdi.GET_BITS_LOW
GET_BITS_HIGH = _ftdi.GET_BITS_HIGH
LOOPBACK_START = _ftdi.LOOPBACK_START
LOOPBACK_END = _ftdi.LOOPBACK_END
TCK_DIVISOR = _ftdi.TCK_DIVISOR
DIS_DIV_5 = _ftdi.DIS_DIV_5
EN_DIV_5 = _ftdi.EN_DIV_5
EN_3_PHASE = _ftdi.EN_3_PHASE
DIS_3_PHASE = _ftdi.DIS_3_PHASE
CLK_BITS = _ftdi.CLK_BITS
CLK_BYTES = _ftdi.CLK_BYTES
CLK_WAIT_HIGH = _ftdi.CLK_WAIT_HIGH
CLK_WAIT_LOW = _ftdi.CLK_WAIT_LOW
EN_ADAPTIVE = _ftdi.EN_ADAPTIVE
DIS_ADAPTIVE = _ftdi.DIS_ADAPTIVE
CLK_BYTES_OR_HIGH = _ftdi.CLK_BYTES_OR_HIGH
CLK_BYTES_OR_LOW = _ftdi.CLK_BYTES_OR_LOW
DRIVE_OPEN_COLLECTOR = _ftdi.DRIVE_OPEN_COLLECTOR
SEND_IMMEDIATE = _ftdi.SEND_IMMEDIATE
WAIT_ON_HIGH = _ftdi.WAIT_ON_HIGH
WAIT_ON_LOW = _ftdi.WAIT_ON_LOW
READ_SHORT = _ftdi.READ_SHORT
READ_EXTENDED = _ftdi.READ_EXTENDED
WRITE_SHORT = _ftdi.WRITE_SHORT
WRITE_EXTENDED = _ftdi.WRITE_EXTENDED
SIO_RESET = _ftdi.SIO_RESET
SIO_MODEM_CTRL = _ftdi.SIO_MODEM_CTRL
SIO_SET_FLOW_CTRL = _ftdi.SIO_SET_FLOW_CTRL
SIO_SET_BAUD_RATE = _ftdi.SIO_SET_BAUD_RATE
SIO_SET_DATA = _ftdi.SIO_SET_DATA
SIO_RESET_REQUEST = _ftdi.SIO_RESET_REQUEST
SIO_SET_BAUDRATE_REQUEST = _ftdi.SIO_SET_BAUDRATE_REQUEST
SIO_SET_DATA_REQUEST = _ftdi.SIO_SET_DATA_REQUEST
SIO_SET_FLOW_CTRL_REQUEST = _ftdi.SIO_SET_FLOW_CTRL_REQUEST
SIO_SET_MODEM_CTRL_REQUEST = _ftdi.SIO_SET_MODEM_CTRL_REQUEST
SIO_POLL_MODEM_STATUS_REQUEST = _ftdi.SIO_POLL_MODEM_STATUS_REQUEST
SIO_SET_EVENT_CHAR_REQUEST = _ftdi.SIO_SET_EVENT_CHAR_REQUEST
SIO_SET_ERROR_CHAR_REQUEST = _ftdi.SIO_SET_ERROR_CHAR_REQUEST
SIO_SET_LATENCY_TIMER_REQUEST = _ftdi.SIO_SET_LATENCY_TIMER_REQUEST
SIO_GET_LATENCY_TIMER_REQUEST = _ftdi.SIO_GET_LATENCY_TIMER_REQUEST
SIO_SET_BITMODE_REQUEST = _ftdi.SIO_SET_BITMODE_REQUEST
SIO_READ_PINS_REQUEST = _ftdi.SIO_READ_PINS_REQUEST
SIO_READ_EEPROM_REQUEST = _ftdi.SIO_READ_EEPROM_REQUEST
SIO_WRITE_EEPROM_REQUEST = _ftdi.SIO_WRITE_EEPROM_REQUEST
SIO_ERASE_EEPROM_REQUEST = _ftdi.SIO_ERASE_EEPROM_REQUEST
SIO_RESET_SIO = _ftdi.SIO_RESET_SIO
SIO_RESET_PURGE_RX = _ftdi.SIO_RESET_PURGE_RX
SIO_RESET_PURGE_TX = _ftdi.SIO_RESET_PURGE_TX
SIO_DISABLE_FLOW_CTRL = _ftdi.SIO_DISABLE_FLOW_CTRL
SIO_RTS_CTS_HS = _ftdi.SIO_RTS_CTS_HS
SIO_DTR_DSR_HS = _ftdi.SIO_DTR_DSR_HS
SIO_XON_XOFF_HS = _ftdi.SIO_XON_XOFF_HS
SIO_SET_DTR_MASK = _ftdi.SIO_SET_DTR_MASK
SIO_SET_DTR_HIGH = _ftdi.SIO_SET_DTR_HIGH
SIO_SET_DTR_LOW = _ftdi.SIO_SET_DTR_LOW
SIO_SET_RTS_MASK = _ftdi.SIO_SET_RTS_MASK
SIO_SET_RTS_HIGH = _ftdi.SIO_SET_RTS_HIGH
SIO_SET_RTS_LOW = _ftdi.SIO_SET_RTS_LOW
class ftdi_context(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    usb_dev = property(_ftdi.ftdi_context_usb_dev_get, _ftdi.ftdi_context_usb_dev_set)
    usb_read_timeout = property(_ftdi.ftdi_context_usb_read_timeout_get, _ftdi.ftdi_context_usb_read_timeout_set)
    usb_write_timeout = property(_ftdi.ftdi_context_usb_write_timeout_get, _ftdi.ftdi_context_usb_write_timeout_set)
    type = property(_ftdi.ftdi_context_type_get, _ftdi.ftdi_context_type_set)
    baudrate = property(_ftdi.ftdi_context_baudrate_get, _ftdi.ftdi_context_baudrate_set)
    bitbang_enabled = property(_ftdi.ftdi_context_bitbang_enabled_get, _ftdi.ftdi_context_bitbang_enabled_set)
    readbuffer = property(_ftdi.ftdi_context_readbuffer_get, _ftdi.ftdi_context_readbuffer_set)
    readbuffer_offset = property(_ftdi.ftdi_context_readbuffer_offset_get, _ftdi.ftdi_context_readbuffer_offset_set)
    readbuffer_remaining = property(_ftdi.ftdi_context_readbuffer_remaining_get, _ftdi.ftdi_context_readbuffer_remaining_set)
    readbuffer_chunksize = property(_ftdi.ftdi_context_readbuffer_chunksize_get, _ftdi.ftdi_context_readbuffer_chunksize_set)
    writebuffer_chunksize = property(_ftdi.ftdi_context_writebuffer_chunksize_get, _ftdi.ftdi_context_writebuffer_chunksize_set)
    max_packet_size = property(_ftdi.ftdi_context_max_packet_size_get, _ftdi.ftdi_context_max_packet_size_set)
    interface = property(_ftdi.ftdi_context_interface_get, _ftdi.ftdi_context_interface_set)
    index = property(_ftdi.ftdi_context_index_get, _ftdi.ftdi_context_index_set)
    in_ep = property(_ftdi.ftdi_context_in_ep_get, _ftdi.ftdi_context_in_ep_set)
    out_ep = property(_ftdi.ftdi_context_out_ep_get, _ftdi.ftdi_context_out_ep_set)
    bitbang_mode = property(_ftdi.ftdi_context_bitbang_mode_get, _ftdi.ftdi_context_bitbang_mode_set)
    eeprom_size = property(_ftdi.ftdi_context_eeprom_size_get, _ftdi.ftdi_context_eeprom_size_set)
    error_str = property(_ftdi.ftdi_context_error_str_get, _ftdi.ftdi_context_error_str_set)
    async_usb_buffer = property(_ftdi.ftdi_context_async_usb_buffer_get, _ftdi.ftdi_context_async_usb_buffer_set)
    async_usb_buffer_size = property(_ftdi.ftdi_context_async_usb_buffer_size_get, _ftdi.ftdi_context_async_usb_buffer_size_set)
    module_detach_mode = property(_ftdi.ftdi_context_module_detach_mode_get, _ftdi.ftdi_context_module_detach_mode_set)

    def __init__(self):
        _ftdi.ftdi_context_swiginit(self, _ftdi.new_ftdi_context())
    __swig_destroy__ = _ftdi.delete_ftdi_context

# Register ftdi_context in _ftdi:
_ftdi.ftdi_context_swigregister(ftdi_context)
class ftdi_device_list(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    next = property(_ftdi.ftdi_device_list_next_get, _ftdi.ftdi_device_list_next_set)
    dev = property(_ftdi.ftdi_device_list_dev_get, _ftdi.ftdi_device_list_dev_set)

    def __init__(self):
        _ftdi.ftdi_device_list_swiginit(self, _ftdi.new_ftdi_device_list())
    __swig_destroy__ = _ftdi.delete_ftdi_device_list

# Register ftdi_device_list in _ftdi:
_ftdi.ftdi_device_list_swigregister(ftdi_device_list)
CBUS_TXDEN = _ftdi.CBUS_TXDEN
CBUS_PWREN = _ftdi.CBUS_PWREN
CBUS_RXLED = _ftdi.CBUS_RXLED
CBUS_TXLED = _ftdi.CBUS_TXLED
CBUS_TXRXLED = _ftdi.CBUS_TXRXLED
CBUS_SLEEP = _ftdi.CBUS_SLEEP
CBUS_CLK48 = _ftdi.CBUS_CLK48
CBUS_CLK24 = _ftdi.CBUS_CLK24
CBUS_CLK12 = _ftdi.CBUS_CLK12
CBUS_CLK6 = _ftdi.CBUS_CLK6
CBUS_IOMODE = _ftdi.CBUS_IOMODE
CBUS_BB_WR = _ftdi.CBUS_BB_WR
CBUS_BB_RD = _ftdi.CBUS_BB_RD
INVERT_TXD = _ftdi.INVERT_TXD
INVERT_RXD = _ftdi.INVERT_RXD
INVERT_RTS = _ftdi.INVERT_RTS
INVERT_CTS = _ftdi.INVERT_CTS
INVERT_DTR = _ftdi.INVERT_DTR
INVERT_DSR = _ftdi.INVERT_DSR
INVERT_DCD = _ftdi.INVERT_DCD
INVERT_RI = _ftdi.INVERT_RI
HIGH_CURRENT_DRIVE = _ftdi.HIGH_CURRENT_DRIVE
class ftdi_eeprom(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    vendor_id = property(_ftdi.ftdi_eeprom_vendor_id_get, _ftdi.ftdi_eeprom_vendor_id_set)
    product_id = property(_ftdi.ftdi_eeprom_product_id_get, _ftdi.ftdi_eeprom_product_id_set)
    self_powered = property(_ftdi.ftdi_eeprom_self_powered_get, _ftdi.ftdi_eeprom_self_powered_set)
    remote_wakeup = property(_ftdi.ftdi_eeprom_remote_wakeup_get, _ftdi.ftdi_eeprom_remote_wakeup_set)
    chip_type = property(_ftdi.ftdi_eeprom_chip_type_get, _ftdi.ftdi_eeprom_chip_type_set)
    in_is_isochronous = property(_ftdi.ftdi_eeprom_in_is_isochronous_get, _ftdi.ftdi_eeprom_in_is_isochronous_set)
    out_is_isochronous = property(_ftdi.ftdi_eeprom_out_is_isochronous_get, _ftdi.ftdi_eeprom_out_is_isochronous_set)
    suspend_pull_downs = property(_ftdi.ftdi_eeprom_suspend_pull_downs_get, _ftdi.ftdi_eeprom_suspend_pull_downs_set)
    use_serial = property(_ftdi.ftdi_eeprom_use_serial_get, _ftdi.ftdi_eeprom_use_serial_set)
    change_usb_version = property(_ftdi.ftdi_eeprom_change_usb_version_get, _ftdi.ftdi_eeprom_change_usb_version_set)
    usb_version = property(_ftdi.ftdi_eeprom_usb_version_get, _ftdi.ftdi_eeprom_usb_version_set)
    max_power = property(_ftdi.ftdi_eeprom_max_power_get, _ftdi.ftdi_eeprom_max_power_set)
    manufacturer = property(_ftdi.ftdi_eeprom_manufacturer_get, _ftdi.ftdi_eeprom_manufacturer_set)
    product = property(_ftdi.ftdi_eeprom_product_get, _ftdi.ftdi_eeprom_product_set)
    serial = property(_ftdi.ftdi_eeprom_serial_get, _ftdi.ftdi_eeprom_serial_set)
    cbus_function = property(_ftdi.ftdi_eeprom_cbus_function_get, _ftdi.ftdi_eeprom_cbus_function_set)
    high_current = property(_ftdi.ftdi_eeprom_high_current_get, _ftdi.ftdi_eeprom_high_current_set)
    invert = property(_ftdi.ftdi_eeprom_invert_get, _ftdi.ftdi_eeprom_invert_set)
    size = property(_ftdi.ftdi_eeprom_size_get, _ftdi.ftdi_eeprom_size_set)

    def __init__(self):
        _ftdi.ftdi_eeprom_swiginit(self, _ftdi.new_ftdi_eeprom())
    __swig_destroy__ = _ftdi.delete_ftdi_eeprom

# Register ftdi_eeprom in _ftdi:
_ftdi.ftdi_eeprom_swigregister(ftdi_eeprom)

def ftdi_init(ftdi):
    return _ftdi.ftdi_init(ftdi)

def ftdi_new():
    return _ftdi.ftdi_new()

def ftdi_set_interface(ftdi, interface):
    return _ftdi.ftdi_set_interface(ftdi, interface)

def ftdi_deinit(ftdi):
    return _ftdi.ftdi_deinit(ftdi)

def ftdi_free(ftdi):
    return _ftdi.ftdi_free(ftdi)

def ftdi_set_usbdev(ftdi, usbdev):
    return _ftdi.ftdi_set_usbdev(ftdi, usbdev)

def ftdi_usb_find_all(ftdi, devlist, vendor, product):
    return _ftdi.ftdi_usb_find_all(ftdi, devlist, vendor, product)

def ftdi_list_free(devlist):
    return _ftdi.ftdi_list_free(devlist)

def ftdi_list_free2(devlist):
    return _ftdi.ftdi_list_free2(devlist)

def ftdi_usb_get_strings(ftdi, dev, manufacturer, mnf_len, description, desc_len, serial, serial_len):
    return _ftdi.ftdi_usb_get_strings(ftdi, dev, manufacturer, mnf_len, description, desc_len, serial, serial_len)

def ftdi_usb_open(ftdi, vendor, product):
    return _ftdi.ftdi_usb_open(ftdi, vendor, product)

def ftdi_usb_open_desc(ftdi, vendor, product, description, serial):
    return _ftdi.ftdi_usb_open_desc(ftdi, vendor, product, description, serial)

def ftdi_usb_open_desc_index(ftdi, vendor, product, description, serial, index):
    return _ftdi.ftdi_usb_open_desc_index(ftdi, vendor, product, description, serial, index)

def ftdi_usb_open_dev(ftdi, dev):
    return _ftdi.ftdi_usb_open_dev(ftdi, dev)

def ftdi_usb_open_string(ftdi, description):
    return _ftdi.ftdi_usb_open_string(ftdi, description)

def ftdi_usb_close(ftdi):
    return _ftdi.ftdi_usb_close(ftdi)

def ftdi_usb_reset(ftdi):
    return _ftdi.ftdi_usb_reset(ftdi)

def ftdi_usb_purge_rx_buffer(ftdi):
    return _ftdi.ftdi_usb_purge_rx_buffer(ftdi)

def ftdi_usb_purge_tx_buffer(ftdi):
    return _ftdi.ftdi_usb_purge_tx_buffer(ftdi)

def ftdi_usb_purge_buffers(ftdi):
    return _ftdi.ftdi_usb_purge_buffers(ftdi)

def ftdi_set_baudrate(ftdi, baudrate):
    return _ftdi.ftdi_set_baudrate(ftdi, baudrate)

def ftdi_set_line_property(ftdi, bits, sbit, parity):
    return _ftdi.ftdi_set_line_property(ftdi, bits, sbit, parity)

def ftdi_set_line_property2(ftdi, bits, sbit, parity, break_type):
    return _ftdi.ftdi_set_line_property2(ftdi, bits, sbit, parity, break_type)

def ftdi_read_data(ftdi, buf, size):
    return _ftdi.ftdi_read_data(ftdi, buf, size)

def ftdi_read_data_set_chunksize(ftdi, chunksize):
    return _ftdi.ftdi_read_data_set_chunksize(ftdi, chunksize)

def ftdi_read_data_get_chunksize(ftdi, chunksize):
    return _ftdi.ftdi_read_data_get_chunksize(ftdi, chunksize)

def ftdi_write_data(ftdi, buf, size):
    return _ftdi.ftdi_write_data(ftdi, buf, size)

def ftdi_write_data_set_chunksize(ftdi, chunksize):
    return _ftdi.ftdi_write_data_set_chunksize(ftdi, chunksize)

def ftdi_write_data_get_chunksize(ftdi, chunksize):
    return _ftdi.ftdi_write_data_get_chunksize(ftdi, chunksize)

def ftdi_enable_bitbang(ftdi, bitmask):
    return _ftdi.ftdi_enable_bitbang(ftdi, bitmask)

def ftdi_disable_bitbang(ftdi):
    return _ftdi.ftdi_disable_bitbang(ftdi)

def ftdi_set_bitmode(ftdi, bitmask, mode):
    return _ftdi.ftdi_set_bitmode(ftdi, bitmask, mode)

def ftdi_read_pins(ftdi, pins):
    return _ftdi.ftdi_read_pins(ftdi, pins)

def ftdi_set_latency_timer(ftdi, latency):
    return _ftdi.ftdi_set_latency_timer(ftdi, latency)

def ftdi_get_latency_timer(ftdi, latency):
    return _ftdi.ftdi_get_latency_timer(ftdi, latency)

def ftdi_poll_modem_status(ftdi, status):
    return _ftdi.ftdi_poll_modem_status(ftdi, status)

def ftdi_setflowctrl(ftdi, flowctrl):
    return _ftdi.ftdi_setflowctrl(ftdi, flowctrl)

def ftdi_setdtr_rts(ftdi, dtr, rts):
    return _ftdi.ftdi_setdtr_rts(ftdi, dtr, rts)

def ftdi_setdtr(ftdi, state):
    return _ftdi.ftdi_setdtr(ftdi, state)

def ftdi_setrts(ftdi, state):
    return _ftdi.ftdi_setrts(ftdi, state)

def ftdi_set_event_char(ftdi, eventch, enable):
    return _ftdi.ftdi_set_event_char(ftdi, eventch, enable)

def ftdi_set_error_char(ftdi, errorch, enable):
    return _ftdi.ftdi_set_error_char(ftdi, errorch, enable)

def ftdi_eeprom_setsize(ftdi, eeprom, size):
    return _ftdi.ftdi_eeprom_setsize(ftdi, eeprom, size)

def ftdi_eeprom_initdefaults(eeprom):
    return _ftdi.ftdi_eeprom_initdefaults(eeprom)

def ftdi_eeprom_free(eeprom):
    return _ftdi.ftdi_eeprom_free(eeprom)

def ftdi_eeprom_build(eeprom, output):
    return _ftdi.ftdi_eeprom_build(eeprom, output)

def ftdi_eeprom_decode(eeprom, output, size):
    return _ftdi.ftdi_eeprom_decode(eeprom, output, size)

def ftdi_read_eeprom(ftdi, eeprom):
    return _ftdi.ftdi_read_eeprom(ftdi, eeprom)

def ftdi_read_chipid(ftdi, chipid):
    return _ftdi.ftdi_read_chipid(ftdi, chipid)

def ftdi_read_eeprom_getsize(ftdi, eeprom, maxsize):
    return _ftdi.ftdi_read_eeprom_getsize(ftdi, eeprom, maxsize)

def ftdi_write_eeprom(ftdi, eeprom):
    return _ftdi.ftdi_write_eeprom(ftdi, eeprom)

def ftdi_erase_eeprom(ftdi):
    return _ftdi.ftdi_erase_eeprom(ftdi)

def ftdi_read_eeprom_location(ftdi, eeprom_addr, eeprom_val):
    return _ftdi.ftdi_read_eeprom_location(ftdi, eeprom_addr, eeprom_val)

def ftdi_write_eeprom_location(ftdi, eeprom_addr, eeprom_val):
    return _ftdi.ftdi_write_eeprom_location(ftdi, eeprom_addr, eeprom_val)

def ftdi_get_error_string(ftdi):
    return _ftdi.ftdi_get_error_string(ftdi)

