162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 362306a36Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 462306a36Sopenharmony_ci * for more details. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * SGI ARCS firmware interface library for the Linux kernel. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Copyright (C) 1996 David S. Miller (davem@davemloft.net) 962306a36Sopenharmony_ci * Copyright (C) 2001, 2002 Ralf Baechle (ralf@gnu.org) 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci#ifndef _ASM_SGIALIB_H 1262306a36Sopenharmony_ci#define _ASM_SGIALIB_H 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <linux/compiler.h> 1562306a36Sopenharmony_ci#include <asm/sgiarcs.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciextern struct linux_romvec *romvec; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciextern int prom_flags; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci#define PROM_FLAG_ARCS 1 2262306a36Sopenharmony_ci#define PROM_FLAG_USE_AS_CONSOLE 2 2362306a36Sopenharmony_ci#define PROM_FLAG_DONT_FREE_TEMP 4 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci/* Simple char-by-char console I/O. */ 2662306a36Sopenharmony_ciextern char prom_getchar(void); 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci/* Get next memory descriptor after CURR, returns first descriptor 2962306a36Sopenharmony_ci * in chain is CURR is NULL. 3062306a36Sopenharmony_ci */ 3162306a36Sopenharmony_ciextern struct linux_mdesc *prom_getmdesc(struct linux_mdesc *curr); 3262306a36Sopenharmony_ci#define PROM_NULL_MDESC ((struct linux_mdesc *) 0) 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci/* Called by prom_init to setup the physical memory pmemblock 3562306a36Sopenharmony_ci * array. 3662306a36Sopenharmony_ci */ 3762306a36Sopenharmony_ciextern void prom_meminit(void); 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci/* PROM device tree library routines. */ 4062306a36Sopenharmony_ci#define PROM_NULL_COMPONENT ((pcomponent *) 0) 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci/* This is called at prom_init time to identify the 4362306a36Sopenharmony_ci * ARC architecture we are running on 4462306a36Sopenharmony_ci */ 4562306a36Sopenharmony_ciextern void prom_identify_arch(void); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci/* Environment variable routines. */ 4862306a36Sopenharmony_ciextern PCHAR ArcGetEnvironmentVariable(PCHAR name); 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci/* ARCS command line parsing. */ 5162306a36Sopenharmony_ciextern void prom_init_cmdline(int argc, LONG *argv); 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci/* File operations. */ 5462306a36Sopenharmony_ciextern LONG ArcRead(ULONG fd, PVOID buf, ULONG num, PULONG cnt); 5562306a36Sopenharmony_ciextern LONG ArcWrite(ULONG fd, PVOID buf, ULONG num, PULONG cnt); 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci/* Misc. routines. */ 5862306a36Sopenharmony_ciextern VOID ArcEnterInteractiveMode(VOID) __noreturn; 5962306a36Sopenharmony_ciextern DISPLAY_STATUS *ArcGetDisplayStatus(ULONG FileID); 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci#endif /* _ASM_SGIALIB_H */ 62