| /* | 
 |  *	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); | 
 |     } | 
 | } |