1 #ifndef __USB_OS_PLATFORM_H__
2 #define __USB_OS_PLATFORM_H__
3
4 #include <stdint.h>
5 #include <typedef.h>
6
7 #define dma_addr_t unsigned long
8 #define gfp_t uint32_t
9
10 uint16_t le16_to_cpu(uint16_t x);
11 uint32_t le32_to_cpu(uint32_t x);
12 uint32_t le32_to_cpup(const uint32_t *x);
13
14 #define cpu_to_le16(x) le16_to_cpu((x))
15 #define cpu_to_le32(x) le32_to_cpu(x)
16
get_be16(u8 * buf)17 static inline u16 get_be16(u8 *buf)
18 {
19 return ((__u16) buf[0] << 8) | ((__u16) buf[1]);
20 }
21
get_be32(u8 * buf)22 static inline u32 get_be32(u8 *buf)
23 {
24 return ((__u32) buf[0] << 24) | ((__u32) buf[1] << 16) |
25 ((__u32) buf[2] << 8) | ((__u32) buf[3]);
26 }
27
put_be16(__u8 * buf,__u16 val)28 static inline void put_be16(__u8 *buf, __u16 val)
29 {
30 buf[0] = (__u8)(val >> 8);
31 buf[1] = (__u8)val;
32 }
33
put_be32(__u8 * buf,__u32 val)34 static inline void put_be32(__u8 *buf, __u32 val)
35 {
36 buf[0] = (__u8)(val >> 24);
37 buf[1] = (__u8)(val >> 16);
38 buf[2] = (__u8)(val >> 8);
39 buf[3] = (__u8)val;
40 }
41
42 /* 取绝对值 */
43 #undef absolute
44 #define absolute(p) ((p) > 0 ? (p) : -(p))
45
46 //#define readb(addr) (*((volatile unsigned char *)(long)(addr)))
47 //#define readw(addr) (*((volatile unsigned short *)(long)(addr)))
48 // #define readl(addr) (*((volatile unsigned int *)(long)(addr)))
49 //#define writeb(v, addr) (*((volatile unsigned char *)(long)(addr)) = (unsigned char)(v))
50 //#define writew(v, addr) (*((volatile unsigned short *)(long)(addr)) = (unsigned short)(v))
51 // #define writel(v, addr) (*((volatile unsigned int *)(long)(addr)) = (unsigned int)(v))
52
53 #if defined(CONFIG_ARCH_SUN8IW20) || defined(CONFIG_SOC_SUN20IW1)
54 #define readl(addr) (*((volatile unsigned int *)(long)(addr)))
55 #define writel(v, addr) (*((volatile unsigned int *)(long)(addr)) = (unsigned int)(v))
56 #endif
57
58 void *usb_dma_malloc(uint32_t size, dma_addr_t *p_addr);
59 void usb_dma_free(void *v_addr, dma_addr_t p_addr);
60 void usb_set_bit(int bit_nr, volatile uint32_t *addr);
61 void usb_clear_bit(int bit_nr, volatile uint32_t *addr);
62 uint32_t usb_test_bit(int bit_nr, volatile uint32_t *addr);
63 uint32_t usb_test_and_clear_bit(int bit_nr, volatile uint32_t *addr);
64 void usb_clear_bit32(int bit_nr, volatile uint32_t *addr);
65 void usb_dec32(uint32_t *addr);
66 void usb_inc32(uint32_t *addr);
67 void Usb_uint2str_dec(unsigned int input, char *str);
68 #endif
69