1/* 2 * Copyright (C) Paul Mackerras 1997. 3 * Copyright (C) Leigh Brown 2002. 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 8 * 2 of the License, or (at your option) any later version. 9 */ 10 11typedef void *prom_handle; 12typedef void *ihandle; 13typedef void *phandle; 14typedef int (*prom_entry)(void *); 15 16#define OF_INVALID_HANDLE ((prom_handle)-1UL) 17 18extern prom_entry of_prom_entry; 19 20/* function declarations */ 21 22int call_prom(const char *service, int nargs, int nret, ...); 23int call_prom_ret(const char *service, int nargs, int nret, 24 unsigned int *rets, ...); 25void * claim(unsigned int virt, unsigned int size, unsigned int align); 26int map(unsigned int phys, unsigned int virt, unsigned int size); 27void enter(void); 28void exit(void); 29phandle finddevice(const char *name); 30int getprop(phandle node, const char *name, void *buf, int buflen); 31void ofinit(prom_entry entry); 32int ofstdio(ihandle *stdin, ihandle *stdout, ihandle *stderr); 33int read(ihandle instance, void *buf, int buflen); 34void release(void *virt, unsigned int size); 35int write(ihandle instance, void *buf, int buflen); 36 37/* inlines */ 38 39extern inline void pause(void) 40{ 41 enter(); 42} 43