21ed663b2593e86addd983bf645b49774cfb2e68vboxsync/** @file
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * IPRT Filesystem API.
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync */
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync/*
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * Copyright (C) 2012 Oracle Corporation
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync *
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * available from http://www.virtualbox.org. This file is free software;
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * you can redistribute it and/or modify it under the terms of the GNU
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * General Public License (GPL) as published by the Free Software
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync *
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * The contents of this file may alternatively be used under the terms
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * of the Common Development and Distribution License Version 1.0
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * VirtualBox OSE distribution, in which case the provisions of the
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * CDDL are applicable instead of those of the GPL.
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync *
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * You may elect to license modified versions of this file under the
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * terms and conditions of either the GPL or the CDDL or both.
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync */
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync#ifndef ___iprt_filesystem_h
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync#define ___iprt_filesystem_h
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync#include <iprt/cdefs.h>
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync#include <iprt/types.h>
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync#include <iprt/vfs.h>
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsyncRT_C_DECLS_BEGIN
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
c1d279fc0865b91a40b30eda02ed14f6533fe1a4vboxsync/** @defgroup grp_rt_filesystem IPRT Filesystem VFS
c1d279fc0865b91a40b30eda02ed14f6533fe1a4vboxsync *
c1d279fc0865b91a40b30eda02ed14f6533fe1a4vboxsync * @todo r=bird: WRONG WRONG WRONG FILE. We already have a file system API in
c1d279fc0865b91a40b30eda02ed14f6533fe1a4vboxsync * IPRT, it is RTFs*, see @ref grp_rt_fs. NOBODY ADDS ANY NEW APIS HERE!!
c1d279fc0865b91a40b30eda02ed14f6533fe1a4vboxsync *
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * @{
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync */
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync/**
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync * Detect the filesystem in the image given by the VFS file handle
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync * and create a new VFS object.
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync *
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync * @returns IPRT status code.
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync * @retval VERR_NOT_SUPPORTED if the filesystem is not recognized.
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync * @param hVfsFile The file to use as the filesystem medium.
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsync * @param phVfs Where to store the VFS handle on success.
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync */
54d2d2606d7c83a456819cd038a73e0f9a600ca4vboxsyncRTDECL(int) RTFilesystemVfsFromFile(RTVFSFILE hVfsFile, PRTVFS phVfs);
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync/** @} */
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsyncRT_C_DECLS_END
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync#endif /* !___iprt_filesystem_h */
21ed663b2593e86addd983bf645b49774cfb2e68vboxsync