summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2010-03-31 17:25:23 -0400
committerAdam Jackson <ajax@redhat.com>2010-04-05 11:41:24 -0400
commitcd64e193299be4b9733a5e804cedd99e2072830f (patch)
tree9dcf27ccfdfc5805c94f016d696a85ab44512654 /lib
parent2187ec2112750bb898416358ac5463eebbf30049 (diff)
intel_reg_dumper: Add support for reading register dumps from files
Also add intel_reg_snapshot for creating such snapshots, and relevant documentation. Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/intel_gpu_tools.c27
-rw-r--r--lib/intel_gpu_tools.h1
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/intel_gpu_tools.c b/lib/intel_gpu_tools.c
index 6c85d2a1..a699ae82 100644
--- a/lib/intel_gpu_tools.c
+++ b/lib/intel_gpu_tools.c
@@ -25,12 +25,17 @@
*
*/
+#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <errno.h>
#include <err.h>
#include <assert.h>
#include <sys/ioctl.h>
+#include <sys/fcntl.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
#include "intel_gpu_tools.h"
#include "i915_drm.h"
#include "intel_batchbuffer.h"
@@ -83,6 +88,28 @@ intel_get_pci_device(void)
}
void
+intel_map_file(char *file)
+{
+ int fd;
+ struct stat st;
+
+ fd = open(file, O_RDWR);
+ if (fd == -1) {
+ fprintf(stderr, "Couldn't open %s: %s\n", file,
+ strerror(errno));
+ exit(1);
+ }
+ fstat(fd, &st);
+ mmio = mmap(NULL, st.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
+ if (mmio == MAP_FAILED) {
+ fprintf(stderr, "Couldn't mmap %s: %s\n", file,
+ strerror(errno));
+ exit(1);
+ }
+ close(fd);
+}
+
+void
intel_get_mmio(void)
{
int mmio_bar;
diff --git a/lib/intel_gpu_tools.h b/lib/intel_gpu_tools.h
index 07340cc9..259fd9a9 100644
--- a/lib/intel_gpu_tools.h
+++ b/lib/intel_gpu_tools.h
@@ -56,3 +56,4 @@ void intel_get_drm_devid(int fd);
void intel_copy_bo(struct intel_batchbuffer *batch,
drm_intel_bo *dst_bo, drm_intel_bo *src_bo,
int width, int height);
+void intel_map_file(char *);