diff options
author | Arnd Bergmann <arnd@arndb.de> | 2010-09-30 08:24:10 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-05 15:50:14 (GMT) |
commit | 2a953cfd42c00bab00e792422f7c2064c5f0b410 (patch) | |
tree | b778ac83e76de8c5c5644e5061cc19b649f5e8cf /drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | |
parent | 7cfd8a3720c0d266e402c5f6c688a63c213491df (diff) | |
download | linux-fsl-qoriq-2a953cfd42c00bab00e792422f7c2064c5f0b410.tar.xz |
staging/ft1000-usb: fix problems found by sparse
In the original code, address space annotations are missing,
which hides a possible unchecked user pointer access.
Two functions use a lot of stack space.
Extern declarations are all in the wrong place, which leads
to type differences between caller and callee in some cases.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/ft1000/ft1000-usb/ft1000_usb.h')
-rw-r--r-- | drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h index a64d468..b0ab918 100644 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h @@ -102,7 +102,7 @@ typedef struct _PROV_RECORD { #define UCHAR u8 #define USHORT u16 -#define ULONG u32 +#define ULONG u32 /* WTF ??? */ #define BOOLEAN u8 #define PULONG u32 * #define PUSHORT u16 * @@ -152,7 +152,6 @@ typedef struct _PROV_RECORD { #define CIS_NET_ADDR_OFFSET 0xff0 -#define MEM_TAG 'FLRN' // MAGNEMITE specific #define FT1000_REG_MAG_UFDR 0x0000 // Uplink FIFO Data Register. @@ -605,5 +604,43 @@ typedef struct _DPRAM_BLK { u16 *pbuffer; } __attribute__ ((packed)) DPRAM_BLK, *PDPRAM_BLK; +u16 ft1000_read_register(struct ft1000_device *ft1000dev, u16* Data, u16 nRegIndx); +u16 ft1000_write_register(struct ft1000_device *ft1000dev, USHORT value, u16 nRegIndx); +u16 ft1000_read_dpram32(struct ft1000_device *ft1000dev, USHORT indx, PUCHAR buffer, USHORT cnt); +u16 ft1000_write_dpram32(struct ft1000_device *ft1000dev, USHORT indx, PUCHAR buffer, USHORT cnt); +u16 ft1000_read_dpram16(struct ft1000_device *ft1000dev, USHORT indx, PUCHAR buffer, u8 highlow); +u16 ft1000_write_dpram16(struct ft1000_device *ft1000dev, USHORT indx, USHORT value, u8 highlow); +u16 fix_ft1000_read_dpram32(struct ft1000_device *ft1000dev, USHORT indx, PUCHAR buffer); +u16 fix_ft1000_write_dpram32(struct ft1000_device *ft1000dev, USHORT indx, PUCHAR buffer); + +extern void *pFileStart; +extern size_t FileLength; +extern int numofmsgbuf; + +int ft1000_close (struct net_device *dev); +u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart, ULONG FileLength); + +extern struct list_head freercvpool; +extern spinlock_t free_buff_lock; // lock to arbitrate free buffer list for receive command data + +int ft1000_CreateDevice(struct ft1000_device *dev); +void ft1000_DestroyDevice(struct net_device *dev); +extern void CardSendCommand(struct ft1000_device *ft1000dev, void *ptempbuffer, int size); + +PDPRAM_BLK ft1000_get_buffer (struct list_head *bufflist); +void ft1000_free_buffer (PDPRAM_BLK pdpram_blk, struct list_head *plist); + +char *getfw (char *fn, size_t *pimgsz); + +void dsp_reload(struct ft1000_device *ft1000dev); +u16 init_ft1000_netdev(struct ft1000_device *ft1000dev); +struct usb_interface; +u16 reg_ft1000_netdev(struct ft1000_device *ft1000dev, struct usb_interface *intf); +int ft1000_poll(void* dev_id); + +void ft1000InitProc(struct net_device *dev); +void ft1000CleanupProc(FT1000_INFO *info); + + #endif |