summaryrefslogtreecommitdiffstats
path: root/qemu/roms/ipxe/src/include/ipxe/mount.h
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/ipxe/src/include/ipxe/mount.h')
-rw-r--r--qemu/roms/ipxe/src/include/ipxe/mount.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/qemu/roms/ipxe/src/include/ipxe/mount.h b/qemu/roms/ipxe/src/include/ipxe/mount.h
new file mode 100644
index 000000000..ca958117a
--- /dev/null
+++ b/qemu/roms/ipxe/src/include/ipxe/mount.h
@@ -0,0 +1,76 @@
+#ifndef _IPXE_MOUNT_H
+#define _IPXE_MOUNT_H
+
+#include <ipxe/nfs.h>
+
+/** @file
+ *
+ * NFS MOUNT protocol.
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+/** NFS MOUNT protocol number */
+#define ONCRPC_MOUNT 100005
+/** NFS MOUNT protocol version */
+#define MOUNT_VERS 3
+
+
+/** No error */
+#define MNT3_OK 0
+/** Not owner */
+#define MNT3ERR_PERM 1
+/** No such file or directory */
+#define MNT3ERR_NOENT 2
+/** I/O error */
+#define MNT3ERR_IO 5
+/** Permission denied */
+#define MNT3ERR_ACCES 13
+/** Not a directory */
+#define MNT3ERR_NOTDIR 20
+/** Invalid argument */
+#define MNT3ERR_INVAL 22
+/** Filename too long */
+#define MNT3ERR_NAMETOOLONG 63
+/** Operation not supported */
+#define MNT3ERR_NOTSUPP 10004
+/** A failure on the server */
+#define MNT3ERR_SERVERFAULT 10006
+
+
+/**
+ * A MOUNT MNT reply
+ *
+ */
+struct mount_mnt_reply {
+ /** Reply status */
+ uint32_t status;
+ /** Root file handle */
+ struct nfs_fh fh;
+};
+
+/**
+ * Prepare an ONC RPC session to be used as a MOUNT session
+ *
+ * @v session ONC RPC session
+ * @v credential ONC RPC credential
+ *
+ * The credential parameter must not be NULL, use 'oncrpc_auth_none' if you
+ * don't want a particular scheme to be used.
+ */
+static inline void mount_init_session ( struct oncrpc_session *session,
+ struct oncrpc_cred *credential ) {
+ oncrpc_init_session ( session, credential, &oncrpc_auth_none,
+ ONCRPC_MOUNT, MOUNT_VERS );
+}
+
+int mount_mnt ( struct interface *intf, struct oncrpc_session *session,
+ const char *mountpoint );
+int mount_umnt ( struct interface *intf, struct oncrpc_session *session,
+ const char *mountpoint );
+
+int mount_get_mnt_reply ( struct mount_mnt_reply *mnt_reply,
+ struct oncrpc_reply *reply );
+
+#endif /* _IPXE_MOUNT_H */