* cygheap.h (init_cygheap): Move heap pointers here.
* include/sys/cygwin.h (perprocess): Remove heap pointers. * dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff. (_dll_crt0): Don't initialize heap pointers. (cygwin_dll_init): Ditto. (release_upto): Use heap pointers from cygheap. * heap.h: Ditto. * fork.cc (fork_parent): Ditto. Don't set heap pointers in ch. (fork_child): Remove obsolete sigproc_fixup_after_fork. * shared.cc (memory_init): Reorganize so that cygheap initialization is called prior to regular heap since regular heap uses cygheap now. * sigproc.cc (proc_subproc): Eliminate zombies allocation. (sigproc_init): Move zombies alloation here. Don't free up array on fork, just reuse it. (sigproc_fixup_after_fork): Eliminate. * sigproc.h: Ditto. * include/cygwin/version.h: Reflect change to perprocess structure.
This commit is contained in:
@@ -39,15 +39,15 @@ fhandler_dev_mem::fhandler_dev_mem (const char *name, int nunit)
|
||||
NTSTATUS ret;
|
||||
SYSTEM_BASIC_INFORMATION sbi;
|
||||
if ((ret = NtQuerySystemInformation (SystemBasicInformation, (PVOID) &sbi,
|
||||
sizeof sbi, NULL)) != STATUS_SUCCESS)
|
||||
{
|
||||
__seterrno_from_win_error (RtlNtStatusToDosError (ret));
|
||||
debug_printf("NtQuerySystemInformation: ret = %d, Dos(ret) = %d",
|
||||
ret, RtlNtStatusToDosError (ret));
|
||||
mem_size = 0;
|
||||
}
|
||||
sizeof sbi, NULL)) != STATUS_SUCCESS)
|
||||
{
|
||||
__seterrno_from_win_error (RtlNtStatusToDosError (ret));
|
||||
debug_printf("NtQuerySystemInformation: ret = %d, Dos(ret) = %d",
|
||||
ret, RtlNtStatusToDosError (ret));
|
||||
mem_size = 0;
|
||||
}
|
||||
else
|
||||
mem_size = sbi.PhysicalPageSize * sbi.NumberOfPhysicalPages;
|
||||
mem_size = sbi.PhysicalPageSize * sbi.NumberOfPhysicalPages;
|
||||
debug_printf ("MemSize: %d MB", mem_size >> 20);
|
||||
}
|
||||
else if (unit == 2) /* /dev/kmem - Not yet supported */
|
||||
@@ -78,9 +78,9 @@ fhandler_dev_mem::open (const char *, int flags, mode_t)
|
||||
{
|
||||
set_errno (ENOENT);
|
||||
debug_printf ("%s is accessible under NT/W2K only",
|
||||
unit == 1 ? "/dev/mem" :
|
||||
unit == 2 ? "/dev/kmem" :
|
||||
"/dev/port");
|
||||
unit == 1 ? "/dev/mem" :
|
||||
unit == 2 ? "/dev/kmem" :
|
||||
"/dev/port");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ fhandler_dev_mem::open (const char *, int flags, mode_t)
|
||||
|
||||
OBJECT_ATTRIBUTES attr;
|
||||
InitializeObjectAttributes(&attr, &memstr,
|
||||
OBJ_CASE_INSENSITIVE | OBJ_INHERIT,
|
||||
OBJ_CASE_INSENSITIVE | OBJ_INHERIT,
|
||||
NULL, NULL);
|
||||
|
||||
ACCESS_MASK section_access;
|
||||
@@ -152,15 +152,15 @@ fhandler_dev_mem::write (const void *ptr, size_t ulen)
|
||||
|
||||
phys.QuadPart = (ULONGLONG) pos;
|
||||
if ((ret = NtMapViewOfSection (get_handle (),
|
||||
INVALID_HANDLE_VALUE,
|
||||
&viewmem,
|
||||
0L,
|
||||
len,
|
||||
&phys,
|
||||
&len,
|
||||
ViewShare,
|
||||
0,
|
||||
PAGE_READONLY)) != STATUS_SUCCESS)
|
||||
INVALID_HANDLE_VALUE,
|
||||
&viewmem,
|
||||
0L,
|
||||
len,
|
||||
&phys,
|
||||
&len,
|
||||
ViewShare,
|
||||
0,
|
||||
PAGE_READONLY)) != STATUS_SUCCESS)
|
||||
{
|
||||
__seterrno_from_win_error (RtlNtStatusToDosError (ret));
|
||||
return -1;
|
||||
@@ -200,15 +200,15 @@ fhandler_dev_mem::read (void *ptr, size_t ulen)
|
||||
|
||||
phys.QuadPart = (ULONGLONG) pos;
|
||||
if ((ret = NtMapViewOfSection (get_handle (),
|
||||
INVALID_HANDLE_VALUE,
|
||||
&viewmem,
|
||||
0L,
|
||||
len,
|
||||
&phys,
|
||||
&len,
|
||||
ViewShare,
|
||||
0,
|
||||
PAGE_READONLY)) != STATUS_SUCCESS)
|
||||
INVALID_HANDLE_VALUE,
|
||||
&viewmem,
|
||||
0L,
|
||||
len,
|
||||
&phys,
|
||||
&len,
|
||||
ViewShare,
|
||||
0,
|
||||
PAGE_READONLY)) != STATUS_SUCCESS)
|
||||
{
|
||||
__seterrno_from_win_error (RtlNtStatusToDosError (ret));
|
||||
return -1;
|
||||
@@ -283,7 +283,7 @@ fhandler_dev_mem::mmap (caddr_t *addr, size_t len, DWORD access,
|
||||
OBJECT_ATTRIBUTES attr;
|
||||
InitializeObjectAttributes(&attr, &memstr,
|
||||
OBJ_CASE_INSENSITIVE | OBJ_INHERIT,
|
||||
NULL, NULL);
|
||||
NULL, NULL);
|
||||
|
||||
ACCESS_MASK section_access;
|
||||
ULONG protect;
|
||||
|
Reference in New Issue
Block a user