Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / ipxe / src / include / ipxe / mount.h
diff --git a/qemu/roms/ipxe/src/include/ipxe/mount.h b/qemu/roms/ipxe/src/include/ipxe/mount.h
new file mode 100644 (file)
index 0000000..ca95811
--- /dev/null
@@ -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 */