Mercurial > mplayer.hg
view TOOLS/mem2dump.c @ 10621:9f4af7d95d87
this small patch allows to compile the file libmpdemux/tvi_v4l.c properly,
when the Linux is patched with the V4L2 patch, which automatically
includes <linux/videodev2.h> when you include <linux/videodev.h>.
It is necessary then to prevent <linux/time.h> from including (by defining
the _LINUX_TIME_H macro) in order to resolve some collisions and it is
also necessary to prevent the defining of "struct v4l2_capability" and
"VIDIOC_QUERYCAP" in libmpdemux/tvi_v4l.c, when they are allready defined
in the <linux/videodev2.h>.
Patch by Martin Drab <drab@kepler.fjfi.cvut.cz>, checked by Arpi.
author | diego |
---|---|
date | Fri, 15 Aug 2003 15:25:55 +0000 |
parents | 04c80ace9581 |
children | 51276a7f4ea1 |
line wrap: on
line source
/* bios2dump.c - Was designed to dump memory block to file. Usage: as argument requires absolute address of memory dump and its lenght (int hexadecimal form). as output - will write file which will named: memADDR_LEN.dump where: ADDR - given address of memory LEN - given length of memory Licence: GNU GPL v2 Copyright: Nick Kurshev <nickols_k@mail.ru> */ #include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[]) { FILE * fd_mem, *fd_out; unsigned long i,addr,len; int int_no; char outname[80]; unsigned char ch; if(argc < 3) { printf("Usage: %s address length (in hex)\n",argv[0]); return EXIT_FAILURE; } addr = strtol(argv[1],NULL,16); len = strtol(argv[2],NULL,16); if(!(fd_mem = fopen("/dev/mem","rb"))) { perror("Can't open file - /dev/mem"); return EXIT_FAILURE; } sprintf(outname,"mem%08X_%08X.dump",addr,len); if(!(fd_out = fopen(outname,"wb"))) { perror("Can't open output file"); fclose(fd_mem); return EXIT_FAILURE; } fseek(fd_mem,addr,SEEK_SET); for(i=0;i<len;i++) { fread(&ch,1,1,fd_mem); fwrite(&ch,1,1,fd_out); } fclose(fd_out); fclose(fd_mem); return EXIT_SUCCESS; }