summaryrefslogtreecommitdiff
path: root/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-09-30 08:24:10 (GMT)
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-05 15:50:14 (GMT)
commit2a953cfd42c00bab00e792422f7c2064c5f0b410 (patch)
treeb778ac83e76de8c5c5644e5061cc19b649f5e8cf /drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
parent7cfd8a3720c0d266e402c5f6c688a63c213491df (diff)
downloadlinux-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.h41
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