#ifndef _IPXE_MOUNT_H #define _IPXE_MOUNT_H #include /** @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 */