comparison src/unexnt.c @ 5126:2a462149bd6a ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Wed, 24 Feb 2010 19:04:27 -0600
parents 6f2158fa75ed
children 308d34e9f07d
comparison
equal deleted inserted replaced
5125:b5df3737028a 5126:2a462149bd6a
1 /* unexec for XEmacs on Windows NT. 1 /* unexec for XEmacs on Windows NT.
2 Copyright (C) 1994 Free Software Foundation, Inc. 2 Copyright (C) 1994 Free Software Foundation, Inc.
3 Copyright (C) 2002 Ben Wing. 3 Copyright (C) 2002, 2010 Ben Wing.
4 4
5 This file is part of XEmacs. 5 This file is part of XEmacs.
6 6
7 XEmacs is free software; you can redistribute it and/or modify it 7 XEmacs is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the 8 under the terms of the GNU General Public License as published by the
523 HANDLE file; 523 HANDLE file;
524 unsigned long index, n_read; 524 unsigned long index, n_read;
525 525
526 file = qxeCreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL, 526 file = qxeCreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,
527 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 527 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
528 if (file == INVALID_HANDLE_VALUE) 528 assert (file != INVALID_HANDLE_VALUE);
529 ABORT ();
530 529
531 /* Seek to where the .bss section is tucked away after the heap... */ 530 /* Seek to where the .bss section is tucked away after the heap... */
532 index = heap_index_in_executable + get_committed_heap_size (); 531 index = heap_index_in_executable + get_committed_heap_size ();
533 if (SetFilePointer (file, index, NULL, FILE_BEGIN) == 0xFFFFFFFF) 532 if (SetFilePointer (file, index, NULL, FILE_BEGIN) == 0xFFFFFFFF)
534 ABORT (); 533 ABORT ();
535 534
536 /* Ok, read in the saved .bss section and initialize all 535 /* Ok, read in the saved .bss section and initialize all
537 uninitialized variables. */ 536 uninitialized variables. */
538 if (!ReadFile (file, bss_start, bss_size, &n_read, NULL)) 537 if (!ReadFile (file, bss_start, bss_size, &n_read, NULL))
551 void *file_base; 550 void *file_base;
552 unsigned long size, upper_size, n_read; 551 unsigned long size, upper_size, n_read;
553 552
554 file = qxeCreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL, 553 file = qxeCreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL,
555 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 554 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
556 if (file == INVALID_HANDLE_VALUE) 555 assert (file != INVALID_HANDLE_VALUE);
557 ABORT ();
558 556
559 size = GetFileSize (file, &upper_size); 557 size = GetFileSize (file, &upper_size);
560 file_mapping = qxeCreateFileMapping (file, NULL, PAGE_WRITECOPY, 558 file_mapping = qxeCreateFileMapping (file, NULL, PAGE_WRITECOPY,
561 0, size, NULL); 559 0, size, NULL);
562 if (!file_mapping) 560 assert (file_mapping);
563 ABORT ();
564 561
565 size = get_committed_heap_size (); 562 size = get_committed_heap_size ();
566 file_base = MapViewOfFileEx (file_mapping, FILE_MAP_COPY, 0, 563 file_base = MapViewOfFileEx (file_mapping, FILE_MAP_COPY, 0,
567 heap_index_in_executable, size, 564 heap_index_in_executable, size,
568 get_heap_start ()); 565 get_heap_start ());