xref: /qemu/pc-bios/vof/vof.h (revision 21bde1ec)
1*fc8c745dSAlexey Kardashevskiy /*
2*fc8c745dSAlexey Kardashevskiy  * Virtual Open Firmware
3*fc8c745dSAlexey Kardashevskiy  *
4*fc8c745dSAlexey Kardashevskiy  * SPDX-License-Identifier: GPL-2.0-or-later
5*fc8c745dSAlexey Kardashevskiy  */
6*fc8c745dSAlexey Kardashevskiy #include <stdarg.h>
7*fc8c745dSAlexey Kardashevskiy 
8*fc8c745dSAlexey Kardashevskiy typedef unsigned char uint8_t;
9*fc8c745dSAlexey Kardashevskiy typedef unsigned short uint16_t;
10*fc8c745dSAlexey Kardashevskiy typedef unsigned long uint32_t;
11*fc8c745dSAlexey Kardashevskiy typedef unsigned long long uint64_t;
12*fc8c745dSAlexey Kardashevskiy #define NULL (0)
13*fc8c745dSAlexey Kardashevskiy typedef unsigned long ihandle;
14*fc8c745dSAlexey Kardashevskiy typedef unsigned long phandle;
15*fc8c745dSAlexey Kardashevskiy typedef int size_t;
16*fc8c745dSAlexey Kardashevskiy 
17*fc8c745dSAlexey Kardashevskiy /* globals */
18*fc8c745dSAlexey Kardashevskiy extern void _prom_entry(void); /* OF CI entry point (i.e. this firmware) */
19*fc8c745dSAlexey Kardashevskiy 
20*fc8c745dSAlexey Kardashevskiy void do_boot(unsigned long addr, unsigned long r3, unsigned long r4);
21*fc8c745dSAlexey Kardashevskiy 
22*fc8c745dSAlexey Kardashevskiy /* libc */
23*fc8c745dSAlexey Kardashevskiy int strlen(const char *s);
24*fc8c745dSAlexey Kardashevskiy int strcmp(const char *s1, const char *s2);
25*fc8c745dSAlexey Kardashevskiy void *memcpy(void *dest, const void *src, size_t n);
26*fc8c745dSAlexey Kardashevskiy int memcmp(const void *ptr1, const void *ptr2, size_t n);
27*fc8c745dSAlexey Kardashevskiy void *memmove(void *dest, const void *src, size_t n);
28*fc8c745dSAlexey Kardashevskiy void *memset(void *dest, int c, size_t size);
29*fc8c745dSAlexey Kardashevskiy 
30*fc8c745dSAlexey Kardashevskiy /* CI wrappers */
31*fc8c745dSAlexey Kardashevskiy void ci_panic(const char *str);
32*fc8c745dSAlexey Kardashevskiy phandle ci_finddevice(const char *path);
33*fc8c745dSAlexey Kardashevskiy uint32_t ci_getprop(phandle ph, const char *propname, void *prop, int len);
34*fc8c745dSAlexey Kardashevskiy 
35*fc8c745dSAlexey Kardashevskiy /* booting from -kernel */
36*fc8c745dSAlexey Kardashevskiy void boot_from_memory(uint64_t initrd, uint64_t initrdsize);
37*fc8c745dSAlexey Kardashevskiy 
38*fc8c745dSAlexey Kardashevskiy /* Entry points for CI and RTAS */
39*fc8c745dSAlexey Kardashevskiy extern uint32_t ci_entry(uint32_t params);
40*fc8c745dSAlexey Kardashevskiy extern unsigned long hv_rtas(unsigned long params);
41*fc8c745dSAlexey Kardashevskiy extern unsigned int hv_rtas_size;
42