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