mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
/**
|
|
* @file fs_dev.h
|
|
* @brief FS driver.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <sys/types.h>
|
|
#include "../../services/fs.h"
|
|
|
|
#define FSDEV_DIRITER_MAGIC 0x66736476 /* "fsdv" */
|
|
|
|
/*! Open directory struct */
|
|
typedef struct
|
|
{
|
|
u32 magic; /*! "fsdv" */
|
|
FsDir fd;
|
|
ssize_t index; /*! Current entry index */
|
|
size_t size; /*! Current batch size */
|
|
FsDirectoryEntry entry_data[32]; /*! Temporary storage for reading entries */
|
|
} fsdev_dir_t;
|
|
|
|
/// Initializes the FS driver. Automatically initializes the sdmc device if accessible. If called again, sdmc mounting will be attempted again if it's not mounted.
|
|
Result fsdevInit(void);
|
|
|
|
/// Exits the FS driver. Any devices still mounted are unmounted.
|
|
Result fsdevExit(void);
|
|
|
|
/// Mounts the input fs with the specified device name. fsdev will handle closing the fs when required, including when fsdevMountDevice() fails.
|
|
/// Returns -1 when any errors occur.
|
|
int fsdevMountDevice(const char *name, FsFileSystem fs);
|
|
|
|
/// Unmounts the specified device.
|
|
int fsdevUnmountDevice(const char *name);
|
|
|
|
/// Uses fsFsCommit() with the specified device. This must be used after any savedata-write operations(not just file-write).
|
|
/// This is not used automatically at device unmount.
|
|
Result fsdevCommitDevice(const char *name);
|
|
|