(FPGA) Move regOp to struct too

This commit is contained in:
twinaphex 2020-03-07 17:30:56 +01:00
parent 87f34eb12f
commit 8ec6447b18
2 changed files with 23 additions and 21 deletions

View File

@ -25,10 +25,18 @@
#define FB_WIDTH 1920 #define FB_WIDTH 1920
#define FB_HEIGHT 1080 #define FB_HEIGHT 1080
typedef struct RegOp
{
int fd;
void *ptr;
int only_mmap;
int only_munmap;
} RegOp;
typedef struct fpga typedef struct fpga
{ {
volatile unsigned *framebuffer; bool rgb32;
unsigned char *menu_frame; bool menu_rgb32;
unsigned menu_width; unsigned menu_width;
unsigned menu_height; unsigned menu_height;
unsigned menu_pitch; unsigned menu_pitch;
@ -37,8 +45,10 @@ typedef struct fpga
unsigned video_pitch; unsigned video_pitch;
unsigned video_bits; unsigned video_bits;
unsigned menu_bits; unsigned menu_bits;
bool rgb32;
bool menu_rgb32; RegOp regOp;
volatile unsigned *framebuffer;
unsigned char *menu_frame;
} fpga_t; } fpga_t;
#endif #endif

View File

@ -36,15 +36,6 @@
#include "../../verbosity.h" #include "../../verbosity.h"
#include "../common/fpga_common.h" #include "../common/fpga_common.h"
typedef struct RegOp
{
int fd;
void *ptr;
int only_mmap;
int only_munmap;
} RegOp;
static RegOp regOp;
static unsigned int get_memory_size(void) static unsigned int get_memory_size(void)
{ {
@ -76,7 +67,8 @@ static void do_mmap_op(RegOp *regOp)
if (regOp->fd < 1) if (regOp->fd < 1)
return; return;
regOp->ptr = mmap(NULL, get_memory_size(), PROT_READ|PROT_WRITE, MAP_SHARED, regOp->fd, 0); regOp->ptr = mmap(NULL, get_memory_size(),
PROT_READ|PROT_WRITE, MAP_SHARED, regOp->fd, 0);
if (regOp->ptr == MAP_FAILED) if (regOp->ptr == MAP_FAILED)
{ {
@ -101,13 +93,13 @@ static void do_mmap_op(RegOp *regOp)
static void fpga_gfx_create(fpga_t *fpga) static void fpga_gfx_create(fpga_t *fpga)
{ {
memset(&regOp, 0, sizeof(regOp)); memset(&fpga->regOp, 0, sizeof(fpga->regOp));
regOp.only_mmap = 1; fpga->regOp.only_mmap = 1;
do_mmap_op(&regOp); do_mmap_op(&fpga->regOp);
fpga->framebuffer = ((volatile unsigned*)regOp.ptr); fpga->framebuffer = ((volatile unsigned*)fpga->regOp.ptr);
} }
static void *fpga_gfx_init(const video_info_t *video, static void *fpga_gfx_init(const video_info_t *video,
@ -394,10 +386,10 @@ static void fpga_gfx_free(void *data)
free(fpga); free(fpga);
regOp.only_mmap = 0; fpga->regOp.only_mmap = 0;
regOp.only_munmap = 1; fpga->regOp.only_munmap = 1;
do_mmap_op(&regOp); do_mmap_op(&fpga->regOp);
} }
static bool fpga_gfx_set_shader(void *data, static bool fpga_gfx_set_shader(void *data,