!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/usb/serial/   drwxr-xr-x
Free 318.33 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ftdi_sio.h (13.4 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * Definitions for the FTDI USB Single Port Serial Converter - 
 * known as FTDI_SIO (Serial Input/Output application of the chipset) 
 *
 * The example I have is known as the USC-1000 which is available from
 * http://www.dse.co.nz - cat no XH4214 It looks similar to this:
 * http://www.dansdata.com/usbser.htm but I can't be sure There are other
 * USC-1000s which don't look like my device though so beware!
 *
 * The device is based on the FTDI FT8U100AX chip. It has a DB25 on one side, 
 * USB on the other.
 *
 * Thanx to FTDI (http://www.ftdi.co.uk) for so kindly providing details
 * of the protocol required to talk to the device and ongoing assistence
 * during development.
 *
 * Bill Ryder - bryder@sgi.com of Silicon Graphics, Inc.- wrote the 
 * FTDI_SIO implementation.
 *
 */

#define FTDI_VID    0x0403    /* Vendor Id */
#define FTDI_SIO_PID    0x8372    /* Product Id SIO application of 8U100AX  */
#define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */

#define FTDI_SIO_RESET         0 /* Reset the port */
#define FTDI_SIO_MODEM_CTRL     1 /* Set the modem control register */
#define FTDI_SIO_SET_FLOW_CTRL    2 /* Set flow control register */
#define FTDI_SIO_SET_BAUD_RATE    3 /* Set baud rate */
#define FTDI_SIO_SET_DATA    4 /* Set the data characteristics of the port */
#define FTDI_SIO_GET_MODEM_STATUS    5 /* Retrieve current value of modern status register */
#define FTDI_SIO_SET_EVENT_CHAR    6 /* Set the event character */
#define FTDI_SIO_SET_ERROR_CHAR    7 /* Set the error character */

/* Port Identifier Table */
#define PIT_DEFAULT         0 /* SIOA */
#define PIT_SIOA        1 /* SIOA */
/* The device this driver is tested with one has only one port */
#define PIT_SIOB        2 /* SIOB */
#define PIT_PARALLEL        3 /* Parallel */

/* FTDI_SIO_RESET */
#define FTDI_SIO_RESET_REQUEST FTDI_SIO_RESET
#define FTDI_SIO_RESET_REQUEST_TYPE 0x40
#define FTDI_SIO_RESET_SIO 0
#define FTDI_SIO_RESET_PURGE_RX 1
#define FTDI_SIO_RESET_PURGE_TX 2

/*
 * BmRequestType:  0100 0000B
 * bRequest:       FTDI_SIO_RESET
 * wValue:         Control Value 
 *                   0 = Reset SIO
 *                   1 = Purge RX buffer
 *                   2 = Purge TX buffer
 * wIndex:         Port
 * wLength:        0
 * Data:           None
 *
 * The Reset SIO command has this effect:
 *
 *    Sets flow control set to 'none'
 *    Event char = $0D
 *    Event trigger = disabled
 *    Purge RX buffer
 *    Purge TX buffer
 *    Clear DTR
 *    Clear RTS
 *    baud and data format not reset
 *
 * The Purge RX and TX buffer commands affect nothing except the buffers
 *
   */

/* FTDI_SIO_SET_BAUDRATE */
#define FTDI_SIO_SET_BAUDRATE_REQUEST_TYPE 0x40
#define FTDI_SIO_SET_BAUDRATE_REQUEST 3

/*
 * BmRequestType:  0100 0000B
 * bRequest:       FTDI_SIO_SET_BAUDRATE
 * wValue:         BaudRate value - see below
 * wIndex:         Port
 * wLength:        0
 * Data:           None
 */

typedef enum {
    sio = 1,
    F8U232AM = 2,
} ftdi_type_t;


typedef enum {
 ftdi_sio_b300 = 0, 
 ftdi_sio_b600 = 1, 
 ftdi_sio_b1200 = 2,
 ftdi_sio_b2400 = 3,
 ftdi_sio_b4800 = 4,
 ftdi_sio_b9600 = 5,
 ftdi_sio_b19200 = 6,
 ftdi_sio_b38400 = 7,
 ftdi_sio_b57600 = 8,
 ftdi_sio_b115200 = 9
} FTDI_SIO_baudrate_t ;


typedef enum {
  ftdi_8U232AM_12MHz_b300 = 0x09c4,
  ftdi_8U232AM_12MHz_b600 = 0x04E2,
  ftdi_8U232AM_12MHz_b1200 = 0x0271,
  ftdi_8U232AM_12MHz_b2400 = 0x4138,
  ftdi_8U232AM_12MHz_b4800 = 0x809c,
  ftdi_8U232AM_12MHz_b9600 = 0xc04e,
  ftdi_8U232AM_12MHz_b19200 = 0x0027,
  ftdi_8U232AM_12MHz_b38400 = 0x4013,
  ftdi_8U232AM_12MHz_b57600 = 0x000d,
  ftdi_8U232AM_12MHz_b115200 = 0x4006,
  ftdi_8U232AM_12MHz_b230400 = 0x8003,
} FTDI_8U232AM_12MHz_baudrate_t;
/* Apparently all devices are 48MHz */
typedef enum {
  ftdi_8U232AM_48MHz_b300 = 0x2710,
  ftdi_8U232AM_48MHz_b600 = 0x1388,
  ftdi_8U232AM_48MHz_b1200 = 0x09c4,
  ftdi_8U232AM_48MHz_b2400 = 0x04e2,
  ftdi_8U232AM_48MHz_b4800 = 0x0271,
  ftdi_8U232AM_48MHz_b9600 = 0x4138,
  ftdi_8U232AM_48MHz_b19200 = 0x809c,
  ftdi_8U232AM_48MHz_b38400 = 0xc04e,
  ftdi_8U232AM_48MHz_b57600 = 0x0034,
  ftdi_8U232AM_48MHz_b115200 = 0x001a,
  ftdi_8U232AM_48MHz_b230400 = 0x000d,
  ftdi_8U232AM_48MHz_b460800 = 0x4006,
  ftdi_8U232AM_48MHz_b921600 = 0x8003,

} FTDI_8U232AM_48MHz_baudrate_t;

#define FTDI_SIO_SET_DATA_REQUEST FTDI_SIO_SET_DATA
#define FTDI_SIO_SET_DATA_REQUEST_TYPE 0x40
#define FTDI_SIO_SET_DATA_PARITY_NONE (0x0 << 8 )
#define FTDI_SIO_SET_DATA_PARITY_ODD (0x1 << 8 )
#define FTDI_SIO_SET_DATA_PARITY_EVEN (0x2 << 8 )
#define FTDI_SIO_SET_DATA_PARITY_MARK (0x3 << 8 )
#define FTDI_SIO_SET_DATA_PARITY_SPACE (0x4 << 8 )
#define FTDI_SIO_SET_DATA_STOP_BITS_1 (0x0 << 11 )
#define FTDI_SIO_SET_DATA_STOP_BITS_15 (0x1 << 11 )
#define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11 )
#define FTDI_SIO_SET_BREAK (0x1 << 14)
/* FTDI_SIO_SET_DATA */

/*
 * BmRequestType:  0100 0000B 
 * bRequest:       FTDI_SIO_SET_DATA
 * wValue:         Data characteristics (see below)
 * wIndex:         Port
 * wLength:        0
 * Data:           No
 *
 * Data characteristics
 *
 *   B0..7   Number of data bits
 *   B8..10  Parity
 *           0 = None
 *           1 = Odd
 *           2 = Even
 *           3 = Mark
 *           4 = Space
 *   B11..13 Stop Bits
 *           0 = 1
 *           1 = 1.5
 *           2 = 2
 *   B14
 *           1 = TX ON (break)
 *           0 = TX OFF (normal state)
 *   B15 Reserved
 *
 */



/* FTDI_SIO_MODEM_CTRL */
#define FTDI_SIO_SET_MODEM_CTRL_REQUEST_TYPE 0x40
#define FTDI_SIO_SET_MODEM_CTRL_REQUEST FTDI_SIO_MODEM_CTRL

/* 
 * BmRequestType:   0100 0000B
 * bRequest:        FTDI_SIO_MODEM_CTRL
 * wValue:          ControlValue (see below)
 * wIndex:          Port
 * wLength:         0
 * Data:            None
 *
 * NOTE: If the device is in RTS/CTS flow control, the RTS set by this
 * command will be IGNORED without an error being returned
 * Also - you can not set DTR and RTS with one control message
 */

#define FTDI_SIO_SET_DTR_MASK 0x1
#define FTDI_SIO_SET_DTR_HIGH ( 1 | ( FTDI_SIO_SET_DTR_MASK  << 8))
#define FTDI_SIO_SET_DTR_LOW  ( 0 | ( FTDI_SIO_SET_DTR_MASK  << 8))
#define FTDI_SIO_SET_RTS_MASK 0x2
#define FTDI_SIO_SET_RTS_HIGH ( 2 | ( FTDI_SIO_SET_RTS_MASK << 8 ))
#define FTDI_SIO_SET_RTS_LOW ( 0 | ( FTDI_SIO_SET_RTS_MASK << 8 ))

/*
 * ControlValue
 * B0    DTR state
 *          0 = reset
 *          1 = set
 * B1    RTS state
 *          0 = reset
 *          1 = set
 * B2..7 Reserved
 * B8    DTR state enable
 *          0 = ignore
 *          1 = use DTR state
 * B9    RTS state enable
 *          0 = ignore
 *          1 = use RTS state
 * B10..15 Reserved
 */

/* FTDI_SIO_SET_FLOW_CTRL */
#define FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE 0x40
#define FTDI_SIO_SET_FLOW_CTRL_REQUEST FTDI_SIO_SET_FLOW_CTRL
#define FTDI_SIO_DISABLE_FLOW_CTRL 0x0 
#define FTDI_SIO_RTS_CTS_HS (0x1 << 8)
#define FTDI_SIO_DTR_DSR_HS (0x2 << 8)
#define FTDI_SIO_XON_XOFF_HS (0x4 << 8)
/*
 *   BmRequestType:  0100 0000b
 *   bRequest:       FTDI_SIO_SET_FLOW_CTRL
 *   wValue:         Xoff/Xon
 *   wIndex:         Protocol/Port - hIndex is protocl / lIndex is port
 *   wLength:        0 
 *   Data:           None
 *
 * hIndex protocol is:
 *   B0 Output handshaking using RTS/CTS
 *       0 = disabled
 *       1 = enabled
 *   B1 Output handshaking using DTR/DSR
 *       0 = disabled
 *       1 = enabled
 *   B2 Xon/Xoff handshaking
 *       0 = disabled
 *       1 = enabled
 *
 * A value of zero in the hIndex field disables handshaking
 *
 * If Xon/Xoff handshaking is specified, the hValue field should contain the XOFF character 
 * and the lValue field contains the XON character.
 */  
 
/*
 * FTDI_SIO_SET_EVENT_CHAR 
 *
 * Set the special event character for the specified communications port.
 * If the device sees this character it will immediately return the
 * data read so far - rather than wait 40ms or until 62 bytes are read
 * which is what normally happens.
 */


#define  FTDI_SIO_SET_EVENT_CHAR_REQUEST FTDI_SIO_SET_EVENT_CHAR
#define  FTDI_SIO_SET_EVENT_CHAR_REQUEST_TYPE 0x40


/* 
 *  BmRequestType:   0100 0000b
 *  bRequest:        FTDI_SIO_SET_EVENT_CHAR
 *  wValue:          EventChar
 *  wIndex:          Port
 *  wLength:         0
 *  Data:            None
 *
 * wValue:
 *   B0..7   Event Character
 *   B8      Event Character Processing
 *             0 = disabled
 *             1 = enabled
 *   B9..15  Reserved
 *
 */
          
/* FTDI_SIO_SET_ERROR_CHAR */

/* Set the parity error replacement character for the specified communications port */

/* 
 *  BmRequestType:  0100 0000b
 *  bRequest:       FTDI_SIO_SET_EVENT_CHAR
 *  wValue:         Error Char
 *  wIndex:         Port
 *  wLength:        0
 *  Data:           None
 *
 *Error Char
 *  B0..7  Error Character
 *  B8     Error Character Processing
 *           0 = disabled
 *           1 = enabled
 *  B9..15 Reserved
 *
 */

/* FTDI_SIO_GET_MODEM_STATUS */
/* Retreive the current value of the modem status register */

#define FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE 0xc0
#define FTDI_SIO_GET_MODEM_STATUS_REQUEST FTDI_SIO_GET_MODEM_STATUS
#define FTDI_SIO_CTS_MASK 0x10
#define FTDI_SIO_DSR_MASK 0x20
#define FTDI_SIO_RI_MASK  0x40
#define FTDI_SIO_RLSD_MASK 0x80
/* 
 *   BmRequestType:   1100 0000b
 *   bRequest:        FTDI_SIO_GET_MODEM_STATUS
 *   wValue:          zero
 *   wIndex:          Port
 *   wLength:         1
 *   Data:            Status
 * 
 * One byte of data is returned 
 * B0..3 0
 * B4    CTS
 *         0 = inactive
 *         1 = active
 * B5    DSR
 *         0 = inactive
 *         1 = active
 * B6    Ring Indicator (RI)
 *         0 = inactive
 *         1 = active
 * B7    Receive Line Signal Detect (RLSD)
 *         0 = inactive
 *         1 = active 
 */



/* Descriptors returned by the device 
 * 
 *  Device Descriptor
 * 
 * Offset    Field        Size    Value    Description
 * 0    bLength        1    0x12    Size of descriptor in bytes
 * 1    bDescriptorType    1    0x01    DEVICE Descriptor Type
 * 2    bcdUSB        2    0x0110    USB Spec Release Number
 * 4    bDeviceClass    1    0x00    Class Code
 * 5    bDeviceSubClass    1    0x00    SubClass Code
 * 6    bDeviceProtocol    1    0x00    Protocol Code
 * 7    bMaxPacketSize0 1    0x08    Maximum packet size for endpoint 0
 * 8    idVendor    2    0x0403    Vendor ID
 * 10    idProduct    2    0x8372    Product ID (FTDI_SIO_PID)
 * 12    bcdDevice    2    0x0001    Device release number
 * 14    iManufacturer    1    0x01    Index of man. string desc
 * 15    iProduct    1    0x02    Index of prod string desc
 * 16    iSerialNumber    1    0x02    Index of serial nmr string desc
 * 17    bNumConfigurations 1    0x01    Number of possible configurations
 * 
 * Configuration Descriptor
 * 
 * Offset    Field            Size    Value
 * 0    bLength            1    0x09    Size of descriptor in bytes
 * 1    bDescriptorType        1    0x02    CONFIGURATION Descriptor Type
 * 2    wTotalLength        2    0x0020    Total length of data
 * 4    bNumInterfaces        1    0x01    Number of interfaces supported
 * 5    bConfigurationValue    1    0x01    Argument for SetCOnfiguration() req
 * 6    iConfiguration        1    0x02    Index of config string descriptor
 * 7    bmAttributes        1    0x20    Config characteristics Remote Wakeup
 * 8    MaxPower        1    0x1E    Max power consumption
 * 
 * Interface Descriptor
 * 
 * Offset    Field            Size    Value
 * 0    bLength            1    0x09    Size of descriptor in bytes
 * 1    bDescriptorType        1    0x04    INTERFACE Descriptor Type
 * 2    bInterfaceNumber    1    0x00    Number of interface
 * 3    bAlternateSetting    1    0x00    Value used to select alternate
 * 4    bNumEndpoints        1    0x02    Number of endpoints
 * 5    bInterfaceClass        1    0xFF    Class Code
 * 6    bInterfaceSubClass    1    0xFF    Subclass Code
 * 7    bInterfaceProtocol    1    0xFF    Protocol Code
 * 8    iInterface        1    0x02    Index of interface string description
 * 
 * IN Endpoint Descriptor
 * 
 * Offset    Field            Size    Value
 * 0    bLength            1    0x07    Size of descriptor in bytes
 * 1    bDescriptorType        1    0x05    ENDPOINT descriptor type
 * 2    bEndpointAddress    1    0x82    Address of endpoint
 * 3    bmAttributes        1    0x02    Endpoint attributes - Bulk
 * 4    bNumEndpoints        2    0x0040    maximum packet size
 * 5    bInterval        1    0x00    Interval for polling endpoint
 * 
 * OUT Endpoint Descriptor
 * 
 * Offset    Field            Size    Value
 * 0    bLength            1    0x07    Size of descriptor in bytes
 * 1    bDescriptorType        1    0x05    ENDPOINT descriptor type
 * 2    bEndpointAddress    1    0x02    Address of endpoint
 * 3    bmAttributes        1    0x02    Endpoint attributes - Bulk
 * 4    bNumEndpoints        2    0x0040    maximum packet size
 * 5    bInterval        1    0x00    Interval for polling endpoint
 *     
 * DATA FORMAT
 * 
 * IN Endpoint
 * 
 * The device reserves the first two bytes of data on this endpoint to contain the current
 * values of the modem and line status registers. In the absence of data, the device 
 * generates a message consisting of these two status bytes every 40 ms
 * 
 * Byte 0: Modem Status
 * 
 * Offset    Description
 * B0    Reserved - must be 1
 * B1    Reserved - must be 0
 * B2    Reserved - must be 0
 * B3    Reserved - must be 0
 * B4    Clear to Send (CTS)
 * B5    Data Set Ready (DSR)
 * B6    Ring Indicator (RI)
 * B7    Receive Line Signal Detect (RLSD)
 * 
 * Byte 1: Line Status
 * 
 * Offset    Description
 * B0    Data Ready (DR)
 * B1    Overrun Error (OE)
 * B2    Parity Error (PE)
 * B3    Framing Error (FE)
 * B4    Break Interrupt (BI)
 * B5    Transmitter Holding Register (THRE)
 * B6    Transmitter Empty (TEMT)
 * B7    Error in RCVR FIFO
 * 
 */
#define FTDI_RS_DR  1
#define FTDI_RS_OE (1<<1)
#define FTDI_RS_PE (1<<2)
#define FTDI_RS_FE (1<<3)
#define FTDI_RS_BI (1<<4)
#define FTDI_RS_THRE (1<<5)
#define FTDI_RS_TEMT (1<<6)
#define FTDI_RS_FIFO  (1<<7)

/*
 * OUT Endpoint
 * 
 * This device reserves the first bytes of data on this endpoint contain the length
 * and port identifier of the message. For the FTDI USB Serial converter the port 
 * identifier is always 1.
 * 
 * Byte 0: Line Status
 * 
 * Offset    Description
 * B0    Reserved - must be 1
 * B1    Reserved - must be 0
 * B2..7    Length of message - (not including Byte 0)
 * 
 */


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0221 ]--