1 /*
2    bug3397636.c
3 */
4 
5 #include <testfwk.h>
6 
7 #pragma disable_warning 85	// Unref. function arg. buf in cf_rdblk().
8 
9 typedef  unsigned char  u8;
10 typedef  unsigned short  u16;
11 
12 unsigned sf_page_size;
13 
sf_read_device_id(void)14 void  sf_read_device_id( void ) {
15   sf_page_size = 0x0108;
16 }
17 
cf_rdblk(u8 * buf,int bufsize)18 u16 cf_rdblk( u8 *buf, int bufsize ) {
19   ASSERT(bufsize == 0x108);
20   return 4;
21 }
22 
far_cf_read()23 void far_cf_read() {
24   u8  cf_buf[1];
25 
26   u16 block=0x0CC0;
27   u16 result;
28 
29   sf_read_device_id( );
30 
31   while(1) {
32     result=cf_rdblk((u8 *)cf_buf, sf_page_size);
33 
34     if(result==4)
35       return;
36     block--;
37   }
38 }
39 
testBug(void)40 void testBug(void) {
41   far_cf_read();
42 }
43 
44