Merged r2981:2982 from branches/SDL-1.2: fbcon getpagesize() compile fix.
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402274
This commit is contained in:
parent
f9ed7eaeb3
commit
aa48694b67
3 changed files with 17 additions and 1 deletions
|
@ -1117,6 +1117,7 @@ AC_HELP_STRING([--enable-video-fbcon], [use framebuffer console video driver [[d
|
||||||
])
|
])
|
||||||
AC_MSG_RESULT($video_fbcon)
|
AC_MSG_RESULT($video_fbcon)
|
||||||
if test x$video_fbcon = xyes; then
|
if test x$video_fbcon = xyes; then
|
||||||
|
AC_CHECK_FUNCS(getpagesize)
|
||||||
AC_DEFINE(SDL_VIDEO_DRIVER_FBCON)
|
AC_DEFINE(SDL_VIDEO_DRIVER_FBCON)
|
||||||
SOURCES="$SOURCES $srcdir/src/video/fbcon/*.c"
|
SOURCES="$SOURCES $srcdir/src/video/fbcon/*.c"
|
||||||
have_video=yes
|
have_video=yes
|
||||||
|
|
|
@ -130,6 +130,7 @@
|
||||||
#undef HAVE_NANOSLEEP
|
#undef HAVE_NANOSLEEP
|
||||||
#undef HAVE_CLOCK_GETTIME
|
#undef HAVE_CLOCK_GETTIME
|
||||||
#undef HAVE_DLVSYM
|
#undef HAVE_DLVSYM
|
||||||
|
#undef HAVE_GETPAGESIZE
|
||||||
|
|
||||||
#else
|
#else
|
||||||
/* We may need some replacement for stdarg.h here */
|
/* 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);
|
struct fb_var_screeninfo *vinfo);
|
||||||
static void FB_RestorePalette(_THIS);
|
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
|
/* Small wrapper for mmap() so we can play nicely with no-mmu hosts
|
||||||
* (non-mmu hosts disallow the MAP_SHARED flag) */
|
* (non-mmu hosts disallow the MAP_SHARED flag) */
|
||||||
|
|
||||||
|
@ -508,6 +521,7 @@ FB_SortModes(_THIS)
|
||||||
static int
|
static int
|
||||||
FB_VideoInit(_THIS, SDL_PixelFormat * vformat)
|
FB_VideoInit(_THIS, SDL_PixelFormat * vformat)
|
||||||
{
|
{
|
||||||
|
const int pagesize = SDL_getpagesize();
|
||||||
struct fb_fix_screeninfo finfo;
|
struct fb_fix_screeninfo finfo;
|
||||||
struct fb_var_screeninfo vinfo;
|
struct fb_var_screeninfo vinfo;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -589,7 +603,7 @@ FB_VideoInit(_THIS, SDL_PixelFormat * vformat)
|
||||||
|
|
||||||
/* Memory map the device, compensating for buggy PPC mmap() */
|
/* Memory map the device, compensating for buggy PPC mmap() */
|
||||||
mapped_offset = (((long) finfo.smem_start) -
|
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_memlen = finfo.smem_len + mapped_offset;
|
||||||
mapped_mem = do_mmap(NULL, mapped_memlen,
|
mapped_mem = do_mmap(NULL, mapped_memlen,
|
||||||
PROT_READ | PROT_WRITE, MAP_SHARED, console_fd, 0);
|
PROT_READ | PROT_WRITE, MAP_SHARED, console_fd, 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue