1/* 2 * Definitions for talking to the Open Firmware PROM on 3 * Power Macintosh computers. 4 * 5 * Copyright (C) 1996 Paul Mackerras. 6 */ 7#ifdef __KERNEL__ 8#ifndef _PPC_PROM_H 9#define _PPC_PROM_H 10 11/* This is used in arch/ppc/mm/mem_pieces.h */ 12struct reg_property { 13 unsigned int address; 14 unsigned int size; 15}; 16 17/* 18 * These macros assist in performing the address calculations that we 19 * need to do to access data when the kernel is running at an address 20 * that is different from the address that the kernel is linked at. 21 * The reloc_offset() function returns the difference between these 22 * two addresses and the macros simplify the process of adding or 23 * subtracting this offset to/from pointer values. 24 */ 25extern unsigned long reloc_offset(void); 26extern unsigned long add_reloc_offset(unsigned long); 27extern unsigned long sub_reloc_offset(unsigned long); 28 29#define PTRRELOC(x) ((typeof(x))add_reloc_offset((unsigned long)(x))) 30#define PTRUNRELOC(x) ((typeof(x))sub_reloc_offset((unsigned long)(x))) 31 32/* 33 * Fallback definitions since we don't support OF in arch/ppc any more. 34 */ 35#define machine_is_compatible(x) 0 36#define of_find_compatible_node(f, t, c) NULL 37#define of_get_property(p, n, l) NULL 38#define get_property(a, b, c) of_get_property((a), (b), (c)) 39 40#endif /* _PPC_PROM_H */ 41#endif /* __KERNEL__ */ 42