!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/   drwxr-xr-x
Free 318.38 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     usb-uhci.h (9.41 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef __LINUX_UHCI_H
#define __LINUX_UHCI_H

/*
   $Id: usb-uhci.h,v 1.58 2001/08/28 16:45:00 acher Exp $
 */
#define MODNAME "usb-uhci"
#define UHCI_LATENCY_TIMER 0

static __inline__ void uhci_wait_ms(unsigned int ms)
{
    if(!in_interrupt())
    {
        current->state = TASK_UNINTERRUPTIBLE;
        schedule_timeout(1 + ms * HZ / 1000);
    }
    else
        mdelay(ms);
}

/* Command register */
#define USBCMD        0
#define   USBCMD_RS        0x0001    /* Run/Stop */
#define   USBCMD_HCRESET    0x0002    /* Host reset */
#define   USBCMD_GRESET        0x0004    /* Global reset */
#define   USBCMD_EGSM        0x0008    /* Global Suspend Mode */
#define   USBCMD_FGR        0x0010    /* Force Global Resume */
#define   USBCMD_SWDBG        0x0020    /* SW Debug mode */
#define   USBCMD_CF        0x0040    /* Config Flag (sw only) */
#define   USBCMD_MAXP        0x0080    /* Max Packet (0 = 32, 1 = 64) */

/* Status register */
#define USBSTS        2
#define   USBSTS_USBINT        0x0001    /* Interrupt due to IOC */
#define   USBSTS_ERROR        0x0002    /* Interrupt due to error */
#define   USBSTS_RD        0x0004    /* Resume Detect */
#define   USBSTS_HSE        0x0008    /* Host System Error - basically PCI problems */
#define   USBSTS_HCPE        0x0010    /* Host Controller Process Error - the scripts were buggy */
#define   USBSTS_HCH        0x0020    /* HC Halted */

/* Interrupt enable register */
#define USBINTR        4
#define   USBINTR_TIMEOUT    0x0001    /* Timeout/CRC error enable */
#define   USBINTR_RESUME    0x0002    /* Resume interrupt enable */
#define   USBINTR_IOC        0x0004    /* Interrupt On Complete enable */
#define   USBINTR_SP        0x0008    /* Short packet interrupt enable */

#define USBFRNUM    6
#define USBFLBASEADD    8
#define USBSOF        12

/* USB port status and control registers */
#define USBPORTSC1    16
#define USBPORTSC2    18
#define   USBPORTSC_CCS        0x0001    /* Current Connect Status ("device present") */
#define   USBPORTSC_CSC        0x0002    /* Connect Status Change */
#define   USBPORTSC_PE        0x0004    /* Port Enable */
#define   USBPORTSC_PEC        0x0008    /* Port Enable Change */
#define   USBPORTSC_LS        0x0030    /* Line Status */
#define   USBPORTSC_RD        0x0040    /* Resume Detect */
#define   USBPORTSC_LSDA    0x0100    /* Low Speed Device Attached */
#define   USBPORTSC_PR        0x0200    /* Port Reset */
#define   USBPORTSC_SUSP    0x1000    /* Suspend */

/* Legacy support register */
#define USBLEGSUP 0xc0
#define USBLEGSUP_DEFAULT 0x2000    /* only PIRQ enable set */

#define UHCI_NULL_DATA_SIZE    0x7ff    /* for UHCI controller TD */
#define UHCI_PID         0xff    /* PID MASK */

#define UHCI_PTR_BITS        0x000F
#define UHCI_PTR_TERM        0x0001
#define UHCI_PTR_QH        0x0002
#define UHCI_PTR_DEPTH        0x0004

#define UHCI_NUMFRAMES        1024    /* in the frame list [array] */
#define UHCI_MAX_SOF_NUMBER    2047    /* in an SOF packet */
#define CAN_SCHEDULE_FRAMES    1000    /* how far future frames can be scheduled */

/*
 * for TD <status>:
 */
#define TD_CTRL_SPD        (1 << 29)    /* Short Packet Detect */
#define TD_CTRL_C_ERR_MASK    (3 << 27)    /* Error Counter bits */
#define TD_CTRL_LS        (1 << 26)    /* Low Speed Device */
#define TD_CTRL_IOS        (1 << 25)    /* Isochronous Select */
#define TD_CTRL_IOC        (1 << 24)    /* Interrupt on Complete */
#define TD_CTRL_ACTIVE        (1 << 23)    /* TD Active */
#define TD_CTRL_STALLED        (1 << 22)    /* TD Stalled */
#define TD_CTRL_DBUFERR        (1 << 21)    /* Data Buffer Error */
#define TD_CTRL_BABBLE        (1 << 20)    /* Babble Detected */
#define TD_CTRL_NAK        (1 << 19)    /* NAK Received */
#define TD_CTRL_CRCTIMEO    (1 << 18)    /* CRC/Time Out Error */
#define TD_CTRL_BITSTUFF    (1 << 17)    /* Bit Stuff Error */
#define TD_CTRL_ACTLEN_MASK    0x7ff    /* actual length, encoded as n - 1 */

#define TD_CTRL_ANY_ERROR    (TD_CTRL_STALLED | TD_CTRL_DBUFERR | \
                 TD_CTRL_BABBLE | TD_CTRL_CRCTIME | TD_CTRL_BITSTUFF)

#define uhci_status_bits(ctrl_sts)    (ctrl_sts & 0xFE0000)
#define uhci_actual_length(ctrl_sts)    ((ctrl_sts + 1) & TD_CTRL_ACTLEN_MASK)    /* 1-based */
#define uhci_ptr_to_virt(x)    bus_to_virt(x & ~UHCI_PTR_BITS)

/*
 * for TD <flags>:
 */
#define UHCI_TD_REMOVE        0x0001    /* Remove when done */

/*
 * for TD <info>: (a.k.a. Token)
 */
#define TD_TOKEN_TOGGLE        19

#define uhci_maxlen(token)    ((token) >> 21)
#define uhci_toggle(token)    (((token) >> TD_TOKEN_TOGGLE) & 1)
#define uhci_endpoint(token)    (((token) >> 15) & 0xf)
#define uhci_devaddr(token)    (((token) >> 8) & 0x7f)
#define uhci_devep(token)    (((token) >> 8) & 0x7ff)
#define uhci_packetid(token)    ((token) & 0xff)
#define uhci_packetout(token)    (uhci_packetid(token) != USB_PID_IN)
#define uhci_packetin(token)    (uhci_packetid(token) == USB_PID_IN)

/* ------------------------------------------------------------------------------------
   New TD/QH-structures
   ------------------------------------------------------------------------------------ */
typedef enum {
    TD_TYPE, QH_TYPE
} uhci_desc_type_t;

typedef struct {
    __u32 link;
    __u32 status;
    __u32 info;
    __u32 buffer;
} uhci_td_t, *puhci_td_t;

typedef struct {
    __u32 head;
    __u32 element;        /* Queue element pointer */
} uhci_qh_t, *puhci_qh_t;

typedef struct {
    union {
        uhci_td_t td;
        uhci_qh_t qh;
    } hw;
    uhci_desc_type_t type;
    dma_addr_t dma_addr;
    struct list_head horizontal;
    struct list_head vertical;
    struct list_head desc_list;
    int last_used;
} uhci_desc_t, *puhci_desc_t;

typedef struct {
    struct list_head desc_list;    // list pointer to all corresponding TDs/QHs associated with this request
    dma_addr_t setup_packet_dma;
    dma_addr_t transfer_buffer_dma;
    unsigned long started;
    urb_t *next_queued_urb;         // next queued urb for this EP
    urb_t *prev_queued_urb;
    uhci_desc_t *bottom_qh;
    uhci_desc_t *next_qh;           // next helper QH
    char use_loop;
    char flags;
} urb_priv_t, *purb_priv_t;

struct virt_root_hub {
    int devnum;        /* Address of Root Hub endpoint */
    void *urb;
    void *int_addr;
    int send;
    int interval;
    int numports;
    int c_p_r[8];
    struct timer_list rh_int_timer;
};

typedef struct uhci {
    int irq;
    unsigned int io_addr;
    unsigned int io_size;
    unsigned int maxports;
    int running;

    int apm_state;

    struct uhci *next;    // chain of uhci device contexts

    struct list_head urb_list;    // list of all pending urbs

    spinlock_t urb_list_lock;    // lock to keep consistency 

    int unlink_urb_done;
    atomic_t avoid_bulk;
    
    struct usb_bus *bus;    // our bus

    __u32 *framelist;
    dma_addr_t framelist_dma;
    uhci_desc_t **iso_td;
    uhci_desc_t *int_chain[8];
    uhci_desc_t *ls_control_chain;
    uhci_desc_t *control_chain;
    uhci_desc_t *bulk_chain;
    uhci_desc_t *chain_end;
    uhci_desc_t *td1ms;
    uhci_desc_t *td32ms;
    struct list_head free_desc;
    spinlock_t qh_lock;
    spinlock_t td_lock;
    struct virt_root_hub rh;    //private data of the virtual root hub
    int loop_usage;            // URBs using bandwidth reclamation

    struct list_head urb_unlinked;    // list of all unlinked  urbs
    long timeout_check;
    int timeout_urbs;
    struct pci_dev *uhci_pci;
    struct pci_pool *desc_pool;
    long last_error_time;          // last error output in uhci_interrupt()
} uhci_t, *puhci_t;


#define MAKE_TD_ADDR(a) ((a)->dma_addr&~UHCI_PTR_QH)
#define MAKE_QH_ADDR(a) ((a)->dma_addr|UHCI_PTR_QH)
#define UHCI_GET_CURRENT_FRAME(uhci) (inw ((uhci)->io_addr + USBFRNUM))

#define CLEAN_TRANSFER_NO_DELETION 0
#define CLEAN_TRANSFER_REGULAR 1
#define CLEAN_TRANSFER_DELETION_MARK 2

#define CLEAN_NOT_FORCED 0
#define CLEAN_FORCED 1

#define PROCESS_ISO_REGULAR 0
#define PROCESS_ISO_FORCE 1

#define UNLINK_ASYNC_STORE_URB 0
#define UNLINK_ASYNC_DONT_STORE 1

#define is_td_active(desc) (desc->hw.td.status & cpu_to_le32(TD_CTRL_ACTIVE))

#define set_qh_head(desc,val) (desc)->hw.qh.head=cpu_to_le32(val)
#define set_qh_element(desc,val) (desc)->hw.qh.element=cpu_to_le32(val)
#define set_td_link(desc,val) (desc)->hw.td.link=cpu_to_le32(val)
#define set_td_ioc(desc) (desc)->hw.td.status |= cpu_to_le32(TD_CTRL_IOC)
#define clr_td_ioc(desc) (desc)->hw.td.status &= cpu_to_le32(~TD_CTRL_IOC)


/* ------------------------------------------------------------------------------------ 
   Virtual Root HUB 
   ------------------------------------------------------------------------------------ */
/* destination of request */
#define RH_INTERFACE               0x01
#define RH_ENDPOINT                0x02
#define RH_OTHER                   0x03

#define RH_CLASS                   0x20
#define RH_VENDOR                  0x40

/* Requests: bRequest << 8 | bmRequestType */
#define RH_GET_STATUS           0x0080
#define RH_CLEAR_FEATURE        0x0100
#define RH_SET_FEATURE          0x0300
#define RH_SET_ADDRESS            0x0500
#define RH_GET_DESCRIPTOR        0x0680
#define RH_SET_DESCRIPTOR       0x0700
#define RH_GET_CONFIGURATION    0x0880
#define RH_SET_CONFIGURATION    0x0900
#define RH_GET_STATE            0x0280
#define RH_GET_INTERFACE        0x0A80
#define RH_SET_INTERFACE        0x0B00
#define RH_SYNC_FRAME           0x0C80
/* Our Vendor Specific Request */
#define RH_SET_EP               0x2000


/* Hub port features */
#define RH_PORT_CONNECTION         0x00
#define RH_PORT_ENABLE             0x01
#define RH_PORT_SUSPEND            0x02
#define RH_PORT_OVER_CURRENT       0x03
#define RH_PORT_RESET              0x04
#define RH_PORT_POWER              0x08
#define RH_PORT_LOW_SPEED          0x09
#define RH_C_PORT_CONNECTION       0x10
#define RH_C_PORT_ENABLE           0x11
#define RH_C_PORT_SUSPEND          0x12
#define RH_C_PORT_OVER_CURRENT     0x13
#define RH_C_PORT_RESET            0x14

/* Hub features */
#define RH_C_HUB_LOCAL_POWER       0x00
#define RH_C_HUB_OVER_CURRENT      0x01

#define RH_DEVICE_REMOTE_WAKEUP    0x00
#define RH_ENDPOINT_STALL          0x01

/* Our Vendor Specific feature */
#define RH_REMOVE_EP               0x00


#define RH_ACK                     0x01
#define RH_REQ_ERR                 -1
#define RH_NACK                    0x00

#endif

:: 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.0145 ]--