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/fw/arc/types.h>
14 #include <asm/sgialib.h>
15
16 LONG
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
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
ArcClose(ULONG FileID)30 ArcClose(ULONG FileID)
31 {
32 return ARC_CALL1(close, FileID);
33 }
34
35 LONG
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
ArcGetReadStatus(ULONG FileID)42 ArcGetReadStatus(ULONG FileID)
43 {
44 return ARC_CALL1(get_rstatus, FileID);
45 }
46
47 LONG
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
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
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
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 ArcSetFileInformation(ULONG FileID, ULONG AttributeFlags,
72 ULONG AttributeMask)
73 {
74 return ARC_CALL3(set_finfo, FileID, AttributeFlags, AttributeMask);
75 }
76