summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug3397636.c
blob: e579301f2561da9f545119cf665c8b7139a57ff1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
   bug3397636.c
*/

#include <testfwk.h>

#pragma disable_warning 85	// Unref. function arg. buf in cf_rdblk().

typedef  unsigned char  u8;
typedef  unsigned short  u16;

unsigned sf_page_size;

void  sf_read_device_id( void ) {
  sf_page_size = 0x0108;
}

u16 cf_rdblk( u8 *buf, int bufsize ) {
  ASSERT(bufsize == 0x108);
  return 4;
}

void far_cf_read() {
  u8  cf_buf[1];
  
  u16 block=0x0CC0;
  u16 result;
  
  sf_read_device_id( );
  
  while(1) {
    result=cf_rdblk((u8 *)cf_buf, sf_page_size);
    
    if(result==4)
      return;
    block--;
  }
}

void testBug(void) {
  far_cf_read();
}