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