Loading...
--- xnu/xnu-4903.231.4/iokit/bsddev/IOKitBSDInit.cpp
+++ xnu/xnu-4570.41.2/iokit/bsddev/IOKitBSDInit.cpp
@@ -38,7 +38,6 @@
#include <pexpert/pexpert.h>
#include <kern/clock.h>
-#include <mach/machine.h>
#include <uuid/uuid.h>
#include <sys/vnode_internal.h>
#include <sys/mount.h>
@@ -58,33 +57,30 @@
extern int mdevgetrange(int devid, uint64_t *base, uint64_t *size);
extern void di_root_ramfile(IORegistryEntry * entry);
+
#if CONFIG_EMBEDDED
#define IOPOLLED_COREFILE (CONFIG_KDP_INTERACTIVE_DEBUGGING)
#if defined(XNU_TARGET_OS_BRIDGE)
-
#define kIOCoreDumpSize 150ULL*1024ULL*1024ULL
// leave free space on volume:
#define kIOCoreDumpFreeSize 150ULL*1024ULL*1024ULL
#define kIOCoreDumpPath "/private/var/internal/kernelcore"
-
-#else /* defined(XNU_TARGET_OS_BRIDGE) */
-#define kIOCoreDumpMinSize 350ULL*1024ULL*1024ULL
-#define kIOCoreDumpLargeSize 500ULL*1024ULL*1024ULL
+#else
+#define kIOCoreDumpSize 350ULL*1024ULL*1024ULL
// leave free space on volume:
#define kIOCoreDumpFreeSize 350ULL*1024ULL*1024ULL
#define kIOCoreDumpPath "/private/var/vm/kernelcore"
-
-#endif /* defined(XNU_TARGET_OS_BRIDGE) */
-
-#elif DEVELOPMENT /* CONFIG_EMBEDDED */
+#endif
+
+#elif DEVELOPMENT
#define IOPOLLED_COREFILE 1
// no sizing
#define kIOCoreDumpSize 0ULL
#define kIOCoreDumpFreeSize 0ULL
-#else /* CONFIG_EMBEDDED */
+#else
#define IOPOLLED_COREFILE 0
-#endif /* CONFIG_EMBEDDED */
+#endif
#if IOPOLLED_COREFILE
@@ -768,7 +764,7 @@
#include <IOKit/IOBufferMemoryDescriptor.h>
IOPolledFileIOVars * gIOPolledCoreFileVars;
-kern_return_t gIOPolledCoreFileOpenRet = kIOReturnNotReady;
+
#if IOPOLLED_COREFILE
static IOReturn
@@ -776,7 +772,6 @@
{
IOReturn err;
unsigned int debug;
- uint64_t corefile_size_bytes = 0;
if (gIOPolledCoreFileVars) return (kIOReturnBusy);
if (!IOPolledInterface::gMetaClass.getInstanceCount()) return (kIOReturnUnsupported);
@@ -785,89 +780,15 @@
PE_parse_boot_argn("debug", &debug, sizeof (debug));
if (DB_DISABLE_LOCAL_CORE & debug) return (kIOReturnUnsupported);
-#if CONFIG_EMBEDDED
- unsigned int requested_corefile_size = 0;
- if (PE_parse_boot_argn("corefile_size_mb", &requested_corefile_size, sizeof(requested_corefile_size))) {
- IOLog("Boot-args specify %d MB kernel corefile\n", requested_corefile_size);
-
- corefile_size_bytes = (requested_corefile_size * 1024ULL * 1024ULL);
- }
-#endif
-
-
- do {
-#if defined(kIOCoreDumpLargeSize)
- if (0 == corefile_size_bytes)
- {
- // If no custom size was requested and we're on a device with >3GB of DRAM, attempt
- // to allocate a large corefile otherwise use a small file.
- if (max_mem > (3 * 1024ULL * 1024ULL * 1024ULL))
- {
- corefile_size_bytes = kIOCoreDumpLargeSize;
- err = IOPolledFileOpen(filename,
- kIOPolledFileCreate,
- corefile_size_bytes, kIOCoreDumpFreeSize,
- NULL, 0,
- &gIOPolledCoreFileVars, NULL, NULL, 0);
- if (kIOReturnSuccess == err)
- {
- break;
- }
- else if (kIOReturnNoSpace == err)
- {
- IOLog("Failed to open corefile of size %llu MB (low disk space)",
- (corefile_size_bytes / (1024ULL * 1024ULL)));
- if (corefile_size_bytes == kIOCoreDumpMinSize)
- {
- gIOPolledCoreFileOpenRet = err;
- return (err);
- }
- // Try to open a smaller corefile (set size and fall-through)
- corefile_size_bytes = kIOCoreDumpMinSize;
- }
- else
- {
- IOLog("Failed to open corefile of size %llu MB (returned error 0x%x)\n",
- (corefile_size_bytes / (1024ULL * 1024ULL)), err);
- gIOPolledCoreFileOpenRet = err;
- return (err);
- }
- }
- else
- {
- corefile_size_bytes = kIOCoreDumpMinSize;
- }
- }
-#else /* defined(kIOCoreDumpLargeSize) */
- if (0 == corefile_size_bytes)
- {
- corefile_size_bytes = kIOCoreDumpSize;
- }
-#endif /* defined(kIOCoreDumpLargeSize) */
- err = IOPolledFileOpen(filename,
- kIOPolledFileCreate,
- corefile_size_bytes, kIOCoreDumpFreeSize,
- NULL, 0,
- &gIOPolledCoreFileVars, NULL, NULL, 0);
- if (kIOReturnSuccess != err)
- {
- IOLog("Failed to open corefile of size %llu MB (returned error 0x%x)\n",
- (corefile_size_bytes / (1024ULL * 1024ULL)), err);
- gIOPolledCoreFileOpenRet = err;
- return (err);
- }
- } while (false);
+ err = IOPolledFileOpen(filename, kIOCoreDumpSize, kIOCoreDumpFreeSize,
+ NULL, 0,
+ &gIOPolledCoreFileVars, NULL, NULL, 0);
+ if (kIOReturnSuccess != err) return (err);
err = IOPolledFilePollersSetup(gIOPolledCoreFileVars, kIOPolledPreflightCoreDumpState);
if (kIOReturnSuccess != err)
{
- IOPolledFileClose(&gIOPolledCoreFileVars, NULL, NULL, 0, 0, 0);
- IOLog("IOPolledFilePollersSetup for corefile failed with error: 0x%x\n", err);
- gIOPolledCoreFileOpenRet = err;
- }
- else
- {
- IOLog("Opened corefile of size %llu MB\n", (corefile_size_bytes / (1024ULL * 1024ULL)));
+ IOPolledFileClose(&gIOPolledCoreFileVars, NULL, NULL, 0, 0, 0);
}
return (err);
@@ -876,7 +797,6 @@
static void
IOClosePolledCoreFile(void)
{
- gIOPolledCoreFileOpenRet = kIOReturnNotOpen;
IOPolledFilePollersClose(gIOPolledCoreFileVars, kIOPolledPostflightCoreDumpState);
IOPolledFileClose(&gIOPolledCoreFileVars, NULL, NULL, 0, 0, 0);
}