#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>




int main (int argc, char* argv[] )
{

int fbfd = 0;
struct fb_var_screeninfo vinfo ;
struct fb_fix_screeninfo finfo ;
long int screensize = 0 ;
 char *fbp = 0;


fbfd = open("/dev/fb0",   O_RDWR );

if ( !fbfd == -1 ) {
    printf("  error cannot open fb \n");
    return (1) ;
        }

printf(" the framebuffer device opened \n");


if ( ioctl( fbfd,  FBIOGET_FSCREENINFO,  &finfo))    {
    printf(" error reading fixed  screen\n");
                            }
                            

 
if ( ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo )){
    printf (" error reading variable info\n");
                        }


screensize = finfo.smem_len;



fbp = (char*) mmap(0,
            screensize,
            PROT_READ | PROT_WRITE,
            MAP_SHARED,
            fbfd, 0 );

if(( int) fbp == -1)  {
    printf("failed to map .\n");
            }

else {
    memset(fbp, 0x00, screensize/2);
    memset(fbp + screensize /2, 0x00, screensize/2);
    }

munmap (fbp, screensize );



close (fbfd) ;

return 0;

}