forked from Bananymous/banan-os
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			697 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			697 B
		
	
	
	
		
			C++
		
	
	
	
| #include <fcntl.h>
 | |
| #include <string.h>
 | |
| #include <sys/framebuffer.h>
 | |
| #include <sys/mman.h>
 | |
| 
 | |
| int main()
 | |
| {
 | |
| 	int fd = open("/dev/fb0", O_RDWR);
 | |
| 	if (fd == -1)
 | |
| 	{
 | |
| 		perror("open");
 | |
| 		return 1;
 | |
| 	}
 | |
| 
 | |
| 	framebuffer_info_t fb_info;
 | |
| 	if (pread(fd, &fb_info, sizeof(fb_info), -1) == -1)
 | |
| 	{
 | |
| 		perror("read");
 | |
| 		return 1;
 | |
| 	}
 | |
| 
 | |
| 	size_t fb_size = fb_info.width * fb_info.height * BANAN_FB_BPP / 8;
 | |
| 
 | |
| 	void* addr = mmap(nullptr, fb_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
 | |
| 	if (addr == MAP_FAILED)
 | |
| 	{
 | |
| 		perror("mmap");
 | |
| 		return 1;
 | |
| 	}
 | |
| 
 | |
| 	memset(addr, 0xFF, fb_size);
 | |
| 
 | |
| 	if (msync(addr, fb_size, MS_SYNC) == -1)
 | |
| 	{
 | |
| 		perror("msync");
 | |
| 		return 1;
 | |
| 	}
 | |
| 
 | |
| 	sleep(4);
 | |
| 
 | |
| 	munmap(addr, fb_size);
 | |
| 	close(fd);
 | |
| 
 | |
| 	return 0;
 | |
| }
 |