mirror of
https://github.com/mpv-player/mpv
synced 2025-03-01 03:40:43 +00:00
osdep: remove unused mmap compatibility hacks
Not sure how this worked. Only af_export.c and tvi_v4l2.c were using mmap, but they didn't include osdep/mmap.h or mmap_anon.h. In any case, we trust that the target system is sufficiently POSIX compliant if mmap is actually defined (as checked by configure).
This commit is contained in:
parent
74b6d8f306
commit
659a314a19
2
Makefile
2
Makefile
@ -33,7 +33,7 @@ SOURCES-$(DVBIN) += stream/dvb_tune.c \
|
||||
SOURCES-$(DVDREAD) += stream/stream_dvd.c \
|
||||
stream/stream_dvd_common.c
|
||||
|
||||
SOURCES-$(HAVE_SYS_MMAN_H) += audio/filter/af_export.c osdep/mmap_anon.c
|
||||
SOURCES-$(HAVE_SYS_MMAN_H) += audio/filter/af_export.c
|
||||
SOURCES-$(LADSPA) += audio/filter/af_ladspa.c
|
||||
SOURCES-$(LIBASS) += sub/ass_mp.c sub/sd_ass.c \
|
||||
demux/demux_libass.c
|
||||
|
7
configure
vendored
7
configure
vendored
@ -1217,13 +1217,6 @@ else
|
||||
fi
|
||||
echores "$_mman"
|
||||
|
||||
_mman_has_map_failed=no
|
||||
statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
|
||||
if test "$_mman_has_map_failed" = yes ; then
|
||||
def_mman_has_map_failed=''
|
||||
else
|
||||
def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
|
||||
fi
|
||||
|
||||
echocheck "dynamic loader"
|
||||
_dl=no
|
||||
|
58
osdep/mmap.h
58
osdep/mmap.h
@ -1,58 +0,0 @@
|
||||
/*
|
||||
* mmap declaration header for systems with missing/nonfunctional sys/mman.h
|
||||
*
|
||||
* Copyright (c) 2008 KO Myung-Hun (komh@chollian.net)
|
||||
*
|
||||
* This file is part of MPlayer.
|
||||
*
|
||||
* MPlayer is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* MPlayer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef MPLAYER_MMAP_H
|
||||
#define MPLAYER_MMAP_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/*
|
||||
* Protections are chosen from these bits, or-ed together
|
||||
*/
|
||||
#define PROT_NONE 0x00 /* no permissions */
|
||||
#define PROT_READ 0x01 /* pages can be read */
|
||||
#define PROT_WRITE 0x02 /* pages can be written */
|
||||
#define PROT_EXEC 0x04 /* pages can be executed */
|
||||
|
||||
/*
|
||||
* Flags contain sharing type and options.
|
||||
* Sharing types; choose one.
|
||||
*/
|
||||
#define MAP_SHARED 0x0001 /* share changes */
|
||||
#define MAP_PRIVATE 0x0002 /* changes are private */
|
||||
#define MAP_FIXED 0x0010 /* map addr must be exactly as requested */
|
||||
|
||||
/*
|
||||
* Mapping type
|
||||
*/
|
||||
#define MAP_ANON 0x1000 /* allocated from memory, swap space */
|
||||
|
||||
/* MAP_FAILED is defined in config.h */
|
||||
|
||||
#ifndef _MMAP_DECLARED
|
||||
#define _MMAP_DECLARED
|
||||
void *mmap( void *addr, size_t len, int prot, int flags, int fildes, off_t off );
|
||||
#endif
|
||||
int munmap( void *addr, size_t len );
|
||||
int mprotect( void *addr, size_t len, int prot );
|
||||
|
||||
#endif /* MPLAYER_MMAP_H */
|
@ -1,84 +0,0 @@
|
||||
/*
|
||||
* This file is part of MPlayer.
|
||||
*
|
||||
* MPlayer is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* MPlayer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file mmap_anon.c
|
||||
* \brief Provide a compatible anonymous space mapping function
|
||||
*/
|
||||
#include "config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#include "mmap_anon.h"
|
||||
|
||||
#if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
|
||||
/*
|
||||
* mmap() anonymous space, depending on the system's mmap() style. On systems
|
||||
* that use the /dev/zero mapping idiom, zerofd will be set to the file descriptor
|
||||
* of the opened /dev/zero.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief mmap() anonymous space, depending on the system's mmap() style. On systems
|
||||
* that use the /dev/zero mapping idiom, zerofd will be set to the file descriptor
|
||||
* of the opened /dev/zero.
|
||||
*
|
||||
* \param addr address to map at.
|
||||
* \param len number of bytes from addr to be mapped.
|
||||
* \param prot protections (region accessibility).
|
||||
* \param flags specifies the type of the mapped object.
|
||||
* \param offset start mapping at byte offset.
|
||||
* \param zerofd
|
||||
* \return a pointer to the mapped region upon successful completion, -1 otherwise.
|
||||
*/
|
||||
void *mmap_anon(void *addr, size_t len, int prot, int flags, off_t offset)
|
||||
{
|
||||
void *result;
|
||||
|
||||
/* From loader/ext.c:
|
||||
* "Linux EINVAL's on us if we don't pass MAP_PRIVATE to an anon mmap"
|
||||
* Therefore we preserve the same behavior on all platforms, ie. no
|
||||
* shared mappings of anon space (if the concepts are supported). */
|
||||
#if defined(MAP_SHARED) && defined(MAP_PRIVATE)
|
||||
flags = (flags & ~MAP_SHARED) | MAP_PRIVATE;
|
||||
#endif /* defined(MAP_SHARED) && defined(MAP_PRIVATE) */
|
||||
|
||||
#ifdef MAP_ANONYMOUS
|
||||
/* BSD-style anonymous mapping */
|
||||
result = mmap(addr, len, prot, flags | MAP_ANONYMOUS, -1, offset);
|
||||
#else
|
||||
/* SysV-style anonymous mapping */
|
||||
int fd;
|
||||
fd = open("/dev/zero", O_RDWR);
|
||||
if(fd < 0){
|
||||
perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: ");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
result = mmap(addr, len, prot, flags, fd, offset);
|
||||
close(fd);
|
||||
#endif /* MAP_ANONYMOUS */
|
||||
|
||||
return result;
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* This file is part of MPlayer.
|
||||
*
|
||||
* MPlayer is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* MPlayer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef MPLAYER_MMAP_ANON_H
|
||||
#define MPLAYER_MMAP_ANON_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
void *mmap_anon(void *, size_t, int, int, off_t);
|
||||
|
||||
#endif /* MPLAYER_MMAP_ANON_H */
|
Loading…
Reference in New Issue
Block a user