diff options
Diffstat (limited to 'qemu/roms/ipxe/src/net/oncrpc/mount.c')
-rw-r--r-- | qemu/roms/ipxe/src/net/oncrpc/mount.c | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/qemu/roms/ipxe/src/net/oncrpc/mount.c b/qemu/roms/ipxe/src/net/oncrpc/mount.c deleted file mode 100644 index 8838a147c..000000000 --- a/qemu/roms/ipxe/src/net/oncrpc/mount.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) 2013 Marin Hannache <ipxe@mareo.fr>. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - */ - -#include <stdint.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <errno.h> -#include <libgen.h> -#include <byteswap.h> -#include <ipxe/time.h> -#include <ipxe/iobuf.h> -#include <ipxe/open.h> -#include <ipxe/features.h> -#include <ipxe/oncrpc.h> -#include <ipxe/oncrpc_iob.h> -#include <ipxe/nfs.h> -#include <ipxe/mount.h> - -/** @file - * - * NFS MOUNT protocol - * - */ - -/** MNT procedure number */ -#define MOUNT_MNT 1 -/** UMNT procedure number */ -#define MOUNT_UMNT 3 - -/** - * Send a MNT request - * - * @v intf Interface to send the request on - * @v session ONC RPC session - * @v mountpoinrt The path of the directory to mount. - * @ret rc Return status code - */ -int mount_mnt ( struct interface *intf, struct oncrpc_session *session, - const char *mountpoint ) { - struct oncrpc_field fields[] = { - ONCRPC_FIELD ( str, mountpoint ), - ONCRPC_FIELD_END, - }; - - return oncrpc_call ( intf, session, MOUNT_MNT, fields ); -} - -/** - * Send a UMNT request - * - * @v intf Interface to send the request on - * @v session ONC RPC session - * @v mountpoinrt The path of the directory to unmount. - * @ret rc Return status code - */ -int mount_umnt ( struct interface *intf, struct oncrpc_session *session, - const char *mountpoint ) { - struct oncrpc_field fields[] = { - ONCRPC_FIELD ( str, mountpoint ), - ONCRPC_FIELD_END, - }; - - return oncrpc_call ( intf, session, MOUNT_UMNT, fields ); -} - -/** - * Parse an MNT reply - * - * @v mnt_reply A structure where the data will be saved - * @v reply The ONC RPC reply to get data from - * @ret rc Return status code - */ -int mount_get_mnt_reply ( struct mount_mnt_reply *mnt_reply, - struct oncrpc_reply *reply ) { - if ( ! mnt_reply || ! reply ) - return -EINVAL; - - mnt_reply->status = oncrpc_iob_get_int ( reply->data ); - - switch ( mnt_reply->status ) - { - case MNT3_OK: - break; - case MNT3ERR_NOENT: - return -ENOENT; - case MNT3ERR_IO: - return -EIO; - case MNT3ERR_ACCES: - return -EACCES; - case MNT3ERR_NOTDIR: - return -ENOTDIR; - case MNT3ERR_NAMETOOLONG: - return -ENAMETOOLONG; - default: - return -EPROTO; - } - - nfs_iob_get_fh ( reply->data, &mnt_reply->fh ); - - return 0; -} |