Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Merged r2981:2982 from branches/SDL-1.2: fbcon getpagesize() compile …
- Loading branch information
Showing
with
17 additions
and
1 deletion.
-
+1
−0
configure.in
-
+1
−0
include/SDL_config.h.in
-
+15
−1
src/video/fbcon/SDL_fbvideo.c
|
@@ -1117,6 +1117,7 @@ AC_HELP_STRING([--enable-video-fbcon], [use framebuffer console video driver [[d |
|
|
]) |
|
|
AC_MSG_RESULT($video_fbcon) |
|
|
if test x$video_fbcon = xyes; then |
|
|
AC_CHECK_FUNCS(getpagesize) |
|
|
AC_DEFINE(SDL_VIDEO_DRIVER_FBCON) |
|
|
SOURCES="$SOURCES $srcdir/src/video/fbcon/*.c" |
|
|
have_video=yes |
|
|
|
@@ -130,6 +130,7 @@ |
|
|
#undef HAVE_NANOSLEEP |
|
|
#undef HAVE_CLOCK_GETTIME |
|
|
#undef HAVE_DLVSYM |
|
|
#undef HAVE_GETPAGESIZE |
|
|
|
|
|
#else |
|
|
/* We may need some replacement for stdarg.h here */ |
|
|
|
@@ -177,6 +177,19 @@ static void FB_SavePalette(_THIS, struct fb_fix_screeninfo *finfo, |
|
|
struct fb_var_screeninfo *vinfo); |
|
|
static void FB_RestorePalette(_THIS); |
|
|
|
|
|
static int SDL_getpagesize(void) |
|
|
{ |
|
|
#ifdef HAVE_GETPAGESIZE |
|
|
return getpagesize(); |
|
|
#elif defined(PAGE_SIZE) |
|
|
return PAGE_SIZE; |
|
|
#else |
|
|
#error Can not determine system page size. |
|
|
return 4096; /* this is what it USED to be in Linux... */ |
|
|
#endif |
|
|
} |
|
|
|
|
|
|
|
|
/* Small wrapper for mmap() so we can play nicely with no-mmu hosts |
|
|
* (non-mmu hosts disallow the MAP_SHARED flag) */ |
|
|
|
|
@@ -508,6 +521,7 @@ FB_SortModes(_THIS) |
|
|
static int |
|
|
FB_VideoInit(_THIS, SDL_PixelFormat * vformat) |
|
|
{ |
|
|
const int pagesize = SDL_getpagesize(); |
|
|
struct fb_fix_screeninfo finfo; |
|
|
struct fb_var_screeninfo vinfo; |
|
|
int i, j; |
|
@@ -589,7 +603,7 @@ FB_VideoInit(_THIS, SDL_PixelFormat * vformat) |
|
|
|
|
|
/* Memory map the device, compensating for buggy PPC mmap() */ |
|
|
mapped_offset = (((long) finfo.smem_start) - |
|
|
(((long) finfo.smem_start) & ~(PAGE_SIZE - 1))); |
|
|
(((long) finfo.smem_start) & ~(pagesize - 1))); |
|
|
mapped_memlen = finfo.smem_len + mapped_offset; |
|
|
mapped_mem = do_mmap(NULL, mapped_memlen, |
|
|
PROT_READ | PROT_WRITE, MAP_SHARED, console_fd, 0); |
|
|