12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #ifndef _IPXE_MOUNT_H
- #define _IPXE_MOUNT_H
-
- #include <ipxe/nfs.h>
-
- /** @file
- *
- * NFS MOUNT protocol.
- *
- */
-
- FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
- /** 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 */
|