Mercurial > hg > xemacs-beta
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 ()); |