1/* 2 * Copyright 2003-2010, Axel D��rfler, axeld@pinc-software.de. 3 * Copyright 2011, Alexander von Gluck, kallisti5@unixzen.com 4 * Copyright 2019, Adrien Destugues, pulkomandy@pulkomandy.tk 5 * Distributed under the terms of the MIT License. 6 */ 7 8 9#include "start.h" 10 11#include "machine.h" 12 13 14void 15determine_machine(void) 16{ 17 gMachine = MACHINE_UNKNOWN; 18} 19 20 21extern "C" void __attribute__((section(".text.start"))) 22_start(int _reserved, int _argstr, int _arglen, int _unknown, 23 void *openFirmwareEntry) 24{ 25 // According to the sparc bindings, OpenFirmware should have created 26 // a stack of 8kB or higher for us at this point, and window traps are 27 // operational so it's possible to call the openFirmwareEntry safely. 28 // The bss segment is already cleared by the firmware as well. 29 30 call_ctors(); 31 // call C++ constructors before doing anything else 32 33 start(openFirmwareEntry); 34} 35 36