1 /* bug-2793.c
2    A parameter changed from unsigned int to unsigned long in CSE.
3  */
4 
5 #include <testfwk.h>
6 
7 typedef unsigned int	UINT;
8 typedef unsigned char	BYTE;
9 typedef unsigned short	WORD;
10 typedef unsigned long	DWORD;
11 
12 BYTE global_buf[10];
13 
mem_set(void * dst,int val,UINT cnt)14 static void mem_set (void* dst, int val, UINT cnt)
15 {
16 	ASSERT (dst == global_buf);
17 	ASSERT (val == 0);
18 	ASSERT (cnt == 1);
19 }
20 
f_mkfs(void * work,UINT len)21 void f_mkfs (
22 	void* work,
23 	UINT len
24 )
25 {
26 	const UINT n_fats = 1;
27 
28 	BYTE *buf;
29 	WORD ss = 1;
30 	DWORD szb_buf, sz_buf, sect, nsect, n;
31 	DWORD b_fat;
32 	DWORD sz_fat;
33 	UINT i;
34 
35 	b_fat = 1;
36 	sz_fat = 0;
37 
38 	{
39 		buf = (BYTE*)work;
40 		sz_buf = len / ss;
41 		szb_buf = sz_buf * ss;
42 	}
43 
44 	{
45 		mem_set(buf, 0, (UINT)szb_buf);
46 		sect = b_fat;
47 		for (i = 0; i < n_fats; i++) {
48 			nsect = sz_fat;
49 			do {
50 				n = (nsect > sz_buf) ? sz_buf : nsect;
51 				mem_set(buf, 0, ss);
52 				sect += n; nsect -= n;
53 			} while (nsect);
54 		}
55 	}
56 }
57 
testBug(void)58 void testBug(void)
59 {
60 	f_mkfs (global_buf, 1);
61 }
62 
63