|  | /* | 
|  | *	DOS dumping utility | 
|  | * | 
|  | * 	Copyright 2006 Eric Pouech | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library 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 | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #include "config.h" | 
|  | #include "wine/port.h" | 
|  |  | 
|  | #include <stdlib.h> | 
|  | #include <stdarg.h> | 
|  | #include <stdio.h> | 
|  | #ifdef HAVE_UNISTD_H | 
|  | # include <unistd.h> | 
|  | #endif | 
|  | #include <time.h> | 
|  | #ifdef HAVE_SYS_TYPES_H | 
|  | # include <sys/types.h> | 
|  | #endif | 
|  | #ifdef HAVE_SYS_STAT_H | 
|  | # include <sys/stat.h> | 
|  | #endif | 
|  | #ifdef HAVE_SYS_MMAN_H | 
|  | #include <sys/mman.h> | 
|  | #endif | 
|  | #include <fcntl.h> | 
|  |  | 
|  | #define NONAMELESSUNION | 
|  | #define NONAMELESSSTRUCT | 
|  | #include "windef.h" | 
|  | #include "winbase.h" | 
|  | #include "winedump.h" | 
|  |  | 
|  | void dos_dump(void) | 
|  | { | 
|  | const IMAGE_DOS_HEADER*    dh; | 
|  |  | 
|  | if ((dh = PRD(0, sizeof(IMAGE_DOS_HEADER)))) | 
|  | { | 
|  | printf("DOS image:\n"); | 
|  | printf("  Signature:            %.2s\n", (const char*)&dh->e_magic); | 
|  | printf("  Bytes on last page:   %u\n", dh->e_cblp); | 
|  | printf("  Number of pages:      %u\n", dh->e_cp); | 
|  | printf("  Relocations:          %u\n", dh->e_crlc); | 
|  | printf("  Size of header:       %u\n", dh->e_cparhdr); | 
|  | printf("  Min extra paragraphs: %u\n", dh->e_minalloc); | 
|  | printf("  Max extra paragraphs: %u\n", dh->e_maxalloc); | 
|  | printf("  Initial stack:        %x:%x\n", dh->e_ss, dh->e_sp); | 
|  | printf("  Checksum:             %x\n", dh->e_csum); | 
|  | printf("  Initial address:      %x:%x\n", dh->e_cs, dh->e_ip); | 
|  | printf("  Relocation (file):    %u\n", dh->e_lfarlc); | 
|  | printf("  Overlay number:       %u\n", dh->e_ovno); | 
|  | printf("  OEM id(info):         %x(%x)\n", dh->e_oemid, dh->e_oeminfo); | 
|  | printf("  Offset to ext header: %x\n", dh->e_lfanew); | 
|  | } | 
|  | } |