mirror of
https://github.com/mpv-player/mpv
synced 2025-01-11 17:39:38 +00:00
MTRR configuring
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4477 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
1e88cc71f2
commit
20af0a9f92
@ -11,7 +11,7 @@ SHORTNAME = libdha.so
|
||||
endif
|
||||
LIBNAME = libdha-$(VERSION).so
|
||||
|
||||
SRCS=libdha.c pci.c pci_names.c
|
||||
SRCS=libdha.c mtrr.c pci.c pci_names.c
|
||||
OBJS=$(SRCS:.c=.o)
|
||||
|
||||
CFLAGS = $(OPTFLAGS) -fPIC -I. -I.. -Wall -W
|
||||
|
@ -58,6 +58,14 @@ extern void OUTPORT32(unsigned idx,unsigned val);
|
||||
extern void * map_phys_mem(unsigned base, unsigned size);
|
||||
extern void unmap_phys_mem(void *ptr, unsigned size);
|
||||
|
||||
/* These are the region types */
|
||||
#define MTRR_TYPE_UNCACHABLE 0
|
||||
#define MTRR_TYPE_WRCOMB 1
|
||||
#define MTRR_TYPE_WRTHROUGH 4
|
||||
#define MTRR_TYPE_WRPROT 5
|
||||
#define MTRR_TYPE_WRBACK 6
|
||||
extern int mtrr_set_type(unsigned base,unsigned size,int type);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
48
libdha/mtrr.c
Normal file
48
libdha/mtrr.c
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
mtrr.c - Stuff for optimizing memory access
|
||||
Copyrights:
|
||||
2002 - Linux version by Nick Kurshev
|
||||
Licence: GPL
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include "libdha.h"
|
||||
#include "AsmMacros.h"
|
||||
|
||||
|
||||
#if defined( __i386__ )
|
||||
int mtrr_set_type(unsigned base,unsigned size,int type)
|
||||
{
|
||||
#ifdef linux
|
||||
FILE * mtrr_fd;
|
||||
char * stype;
|
||||
switch(type)
|
||||
{
|
||||
case MTRR_TYPE_UNCACHABLE: stype = "uncachable"; break;
|
||||
case MTRR_TYPE_WRCOMB: stype = "write-combining"; break;
|
||||
case MTRR_TYPE_WRTHROUGH: stype = "write-through"; break;
|
||||
case MTRR_TYPE_WRPROT: stype = "write-protect"; break;
|
||||
case MTRR_TYPE_WRBACK: stype = "write-back"; break;
|
||||
default: return EINVAL;
|
||||
}
|
||||
mtrr_fd = fopen("/proc/mtrr","wt");
|
||||
if(mtrr_fd)
|
||||
{
|
||||
fprintf(mtrr_fd,"base=0x%08X size=0x%08X type=%s\n",base,size,stype);
|
||||
printf("base=0x%08X size=0x%08X type=%s\n",base,size,stype);
|
||||
fclose(mtrr_fd);
|
||||
return 0;
|
||||
}
|
||||
return ENOSYS;
|
||||
#else
|
||||
#warning Please port MTRR stuff!!!
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
int mtrr_set_type(unsigned base,unsigned size,int type)
|
||||
{
|
||||
}
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user