/[emacs]/emacs/nt/preprep.c
ViewVC logotype

Diff of /emacs/nt/preprep.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by andrewi, Sun Sep 3 17:38:10 2000 UTC revision 1.5.18.1 by miles, Fri Apr 4 06:20:52 2003 UTC
# Line 67  open_input_file (file_data *p_file, char Line 67  open_input_file (file_data *p_file, char
67    
68    file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,    file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,
69                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
70    if (file == INVALID_HANDLE_VALUE)    if (file == INVALID_HANDLE_VALUE)
71      return FALSE;      return FALSE;
72    
73    size = GetFileSize (file, &upper_size);    size = GetFileSize (file, &upper_size);
74    file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY,    file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY,
75                                      0, size, NULL);                                      0, size, NULL);
76    if (!file_mapping)    if (!file_mapping)
77      return FALSE;      return FALSE;
78    
79    file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size);    file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size);
80    if (file_base == 0)    if (file_base == 0)
81      return FALSE;      return FALSE;
82    
83    p_file->name = filename;    p_file->name = filename;
# Line 98  open_output_file (file_data *p_file, cha Line 98  open_output_file (file_data *p_file, cha
98    
99    file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,    file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
100                       CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);                       CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
101    if (file == INVALID_HANDLE_VALUE)    if (file == INVALID_HANDLE_VALUE)
102      return FALSE;      return FALSE;
103    
104    file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,    file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,
105                                      0, size, NULL);                                      0, size, NULL);
106    if (!file_mapping)    if (!file_mapping)
107      return FALSE;      return FALSE;
108      
109    file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);    file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
110    if (file_base == 0)    if (file_base == 0)
111      return FALSE;      return FALSE;
112      
113    p_file->name = filename;    p_file->name = filename;
114    p_file->size = size;    p_file->size = size;
115    p_file->file = file;    p_file->file = file;
# Line 129  open_inout_file (file_data *p_file, char Line 129  open_inout_file (file_data *p_file, char
129    
130    file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,    file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
131                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
132    if (file == INVALID_HANDLE_VALUE)    if (file == INVALID_HANDLE_VALUE)
133      return FALSE;      return FALSE;
134    
135    size = GetFileSize (file, &upper_size);    size = GetFileSize (file, &upper_size);
136    file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,    file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE,
137                                      0, size, NULL);                                      0, size, NULL);
138    if (!file_mapping)    if (!file_mapping)
139      return FALSE;      return FALSE;
140    
141    file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);    file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
142    if (file_base == 0)    if (file_base == 0)
143      return FALSE;      return FALSE;
144    
145    p_file->name = filename;    p_file->name = filename;
# Line 341  relocate_offset (DWORD offset, Line 341  relocate_offset (DWORD offset,
341     easy to parse.  */     easy to parse.  */
342    
343  static void  static void
344  copy_executable_and_move_sections (file_data *p_infile,  copy_executable_and_move_sections (file_data *p_infile,
345                                     file_data *p_outfile)                                     file_data *p_outfile)
346  {  {
347    unsigned char *dst;    unsigned char *dst;
# Line 389  copy_executable_and_move_sections (file_ Line 389  copy_executable_and_move_sections (file_
389       Note that dst is updated implicitly by each COPY_CHUNK.  */       Note that dst is updated implicitly by each COPY_CHUNK.  */
390    
391    dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base;    dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base;
392    nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) +    nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) +
393                                     dos_header->e_lfanew);                                     dos_header->e_lfanew);
394    section = IMAGE_FIRST_SECTION (nt_header);    section = IMAGE_FIRST_SECTION (nt_header);
395    
396    import_dir = &nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];    import_dir = &nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];
397    import_section = rva_to_section (import_dir->VirtualAddress, nt_header);    import_section = rva_to_section (import_dir->VirtualAddress, nt_header);
398    
# Line 776  main (int argc, char **argv) Line 776  main (int argc, char **argv)
776    /* Open the original (dumped) executable file for reference.  */    /* Open the original (dumped) executable file for reference.  */
777    if (!open_input_file (&in_file, in_filename))    if (!open_input_file (&in_file, in_filename))
778      {      {
779        printf ("Failed to open %s (%d)...bailing.\n",        printf ("Failed to open %s (%d)...bailing.\n",
780                in_filename, GetLastError ());                in_filename, GetLastError ());
781        exit (1);        exit (1);
782      }      }
# Line 786  main (int argc, char **argv) Line 786  main (int argc, char **argv)
786       which should fit in the alignment slop.  */       which should fit in the alignment slop.  */
787    if (!open_output_file (&out_file, out_filename, in_file.size))    if (!open_output_file (&out_file, out_filename, in_file.size))
788      {      {
789        printf ("Failed to open %s (%d)...bailing.\n",        printf ("Failed to open %s (%d)...bailing.\n",
790                out_filename, GetLastError ());                out_filename, GetLastError ());
791        exit (1);        exit (1);
792      }      }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.5.18.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26