File: video_detect.i

package info (click to toggle)
frama-c 20161101%2Bsilicon%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 42,324 kB
  • ctags: 35,695
  • sloc: ml: 200,142; ansic: 31,465; makefile: 2,334; sh: 1,643; lisp: 259; python: 85; asm: 26
file content (37 lines) | stat: -rw-r--r-- 635 bytes parent folder | download | duplicates (5)
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
/* run.config*
   STDOPT: #"-absolute-valid-range 0x20-0x23"
*/

int G;

typedef short u16;

static int detect_video(void *video_base)
{
   volatile u16 *p = (u16 *)video_base;
//   Frama_C_show_each_F(p,p[0]);
   u16 saved1 = p[0];
   u16 saved2 = p[1];
   int video_found = 1;


   p[0] = 0xAA55;
   p[1] = 0x55AA;
   if ( (p[0] != 0xAA55) || (p[1] != 0x55AA) )
       video_found = 0;

   p[0] = 0x55AA;
   p[1] = 0xAA55;
   if ( (p[0] != 0x55AA) || (p[1] != 0xAA55) )
       video_found = 0;

   p[0] = saved1;
   p[1] = saved2;

   return video_found;
} 

int main(void) {
	void * ADDR=(void*)0x20;
	return(detect_video(ADDR));
}