Mercurial > mplayer.hg
changeset 2356:04c80ace9581
re-eng tool
author | nick |
---|---|
date | Mon, 22 Oct 2001 07:42:08 +0000 |
parents | 77d81e5c186d |
children | 427dc863fe4b |
files | TOOLS/c TOOLS/mem2dump.c |
diffstat | 2 files changed, 50 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/TOOLS/c Mon Oct 22 07:15:04 2001 +0000 +++ b/TOOLS/c Mon Oct 22 07:42:08 2001 +0000 @@ -1,5 +1,5 @@ gcc bios2dump.c -o bios2dump - +gcc mem2dump.c -o mem2dump gcc subreader.c -o subreader gcc movinfo.c -o movinfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TOOLS/mem2dump.c Mon Oct 22 07:42:08 2001 +0000 @@ -0,0 +1,49 @@ +/* + 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; +} \ No newline at end of file