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  * ARC firmware interface.
7  *
8  * Copyright (C) 1994, 1995, 1996, 1999 Ralf Baechle
9  * Copyright (C) 1999 Silicon Graphics, Inc.
10  */
11 
12 #include <asm/fw/arc/types.h>
13 #include <asm/sgialib.h>
14 
15 LONG
ArcGetDirectoryEntry(ULONG FileID,struct linux_vdirent * Buffer,ULONG N,ULONG * Count)16 ArcGetDirectoryEntry(ULONG FileID, struct linux_vdirent *Buffer,
17 		     ULONG N, ULONG *Count)
18 {
19 	return ARC_CALL4(get_vdirent, FileID, Buffer, N, Count);
20 }
21 
22 LONG
ArcOpen(CHAR * Path,enum linux_omode OpenMode,ULONG * FileID)23 ArcOpen(CHAR *Path, enum linux_omode OpenMode, ULONG *FileID)
24 {
25 	return ARC_CALL3(open, Path, OpenMode, FileID);
26 }
27 
28 LONG
ArcClose(ULONG FileID)29 ArcClose(ULONG FileID)
30 {
31 	return ARC_CALL1(close, FileID);
32 }
33 
34 LONG
ArcRead(ULONG FileID,VOID * Buffer,ULONG N,ULONG * Count)35 ArcRead(ULONG FileID, VOID *Buffer, ULONG N, ULONG *Count)
36 {
37 	return ARC_CALL4(read, FileID, Buffer, N, Count);
38 }
39 
40 LONG
ArcGetReadStatus(ULONG FileID)41 ArcGetReadStatus(ULONG FileID)
42 {
43 	return ARC_CALL1(get_rstatus, FileID);
44 }
45 
46 LONG
ArcWrite(ULONG FileID,PVOID Buffer,ULONG N,PULONG Count)47 ArcWrite(ULONG FileID, PVOID Buffer, ULONG N, PULONG Count)
48 {
49 	return ARC_CALL4(write, FileID, Buffer, N, Count);
50 }
51 
52 LONG
ArcSeek(ULONG FileID,struct linux_bigint * Position,enum linux_seekmode SeekMode)53 ArcSeek(ULONG FileID, struct linux_bigint *Position, enum linux_seekmode SeekMode)
54 {
55 	return ARC_CALL3(seek, FileID, Position, SeekMode);
56 }
57 
58 LONG
ArcMount(char * name,enum linux_mountops op)59 ArcMount(char *name, enum linux_mountops op)
60 {
61 	return ARC_CALL2(mount, name, op);
62 }
63 
64 LONG
ArcGetFileInformation(ULONG FileID,struct linux_finfo * Information)65 ArcGetFileInformation(ULONG FileID, struct linux_finfo *Information)
66 {
67 	return ARC_CALL2(get_finfo, FileID, Information);
68 }
69 
ArcSetFileInformation(ULONG FileID,ULONG AttributeFlags,ULONG AttributeMask)70 LONG ArcSetFileInformation(ULONG FileID, ULONG AttributeFlags,
71 			   ULONG AttributeMask)
72 {
73 	return ARC_CALL3(set_finfo, FileID, AttributeFlags, AttributeMask);
74 }
75