1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * SGI ARCS firmware interface library for the Linux kernel.
7  *
8  * Copyright (C) 1996 David S. Miller (davem@davemloft.net)
9  * Copyright (C) 2001, 2002 Ralf Baechle (ralf@gnu.org)
10  */
11 #ifndef _ASM_SGIALIB_H
12 #define _ASM_SGIALIB_H
13 
14 #include <linux/compiler.h>
15 #include <asm/sgiarcs.h>
16 
17 extern struct linux_romvec *romvec;
18 
19 extern int prom_flags;
20 
21 #define PROM_FLAG_ARCS			1
22 #define PROM_FLAG_USE_AS_CONSOLE	2
23 #define PROM_FLAG_DONT_FREE_TEMP	4
24 
25 /* Simple char-by-char console I/O. */
26 extern char prom_getchar(void);
27 
28 /* Get next memory descriptor after CURR, returns first descriptor
29  * in chain is CURR is NULL.
30  */
31 extern struct linux_mdesc *prom_getmdesc(struct linux_mdesc *curr);
32 #define PROM_NULL_MDESC	  ((struct linux_mdesc *) 0)
33 
34 /* Called by prom_init to setup the physical memory pmemblock
35  * array.
36  */
37 extern void prom_meminit(void);
38 
39 /* PROM device tree library routines. */
40 #define PROM_NULL_COMPONENT ((pcomponent *) 0)
41 
42 /* This is called at prom_init time to identify the
43  * ARC architecture we are running on
44  */
45 extern void prom_identify_arch(void);
46 
47 /* Environment variable routines. */
48 extern PCHAR ArcGetEnvironmentVariable(PCHAR name);
49 
50 /* ARCS command line parsing. */
51 extern void prom_init_cmdline(int argc, LONG *argv);
52 
53 /* File operations. */
54 extern LONG ArcRead(ULONG fd, PVOID buf, ULONG num, PULONG cnt);
55 extern LONG ArcWrite(ULONG fd, PVOID buf, ULONG num, PULONG cnt);
56 
57 /* Misc. routines. */
58 extern VOID ArcEnterInteractiveMode(VOID) __noreturn;
59 extern DISPLAY_STATUS *ArcGetDisplayStatus(ULONG FileID);
60 
61 #endif /* _ASM_SGIALIB_H */
62