MCPcopy Create free account
hub / github.com/devkitPro/libctru / sdmc_statvfs

Function sdmc_statvfs

libctru/source/archive_dev.c:1199–1233  ·  view source on GitHub ↗

! Get filesystem statistics for the SD card * * @param[in,out] r newlib reentrancy struct * @param[in] path Path to filesystem to get statistics of * @param[out] buf Buffer to fill * * @returns 0 for success * @returns -1 for error */

Source from the content-addressed store, hash-verified

1197 * @returns -1 for error
1198 */
1199static int
1200sdmc_statvfs(struct _reent *r,
1201 const char *path,
1202 struct statvfs *buf)
1203{
1204 Result rc;
1205 FS_ArchiveResource resource;
1206 bool writable = false;
1207
1208 rc = FSUSER_GetSdmcArchiveResource(&resource);
1209
1210 if(R_SUCCEEDED(rc))
1211 {
1212 buf->f_bsize = resource.clusterSize;
1213 buf->f_frsize = resource.clusterSize;
1214 buf->f_blocks = resource.totalClusters;
1215 buf->f_bfree = resource.freeClusters;
1216 buf->f_bavail = resource.freeClusters;
1217 buf->f_files = 0; //??? how to get
1218 buf->f_ffree = resource.freeClusters;
1219 buf->f_favail = resource.freeClusters;
1220 buf->f_fsid = 0; //??? how to get
1221 buf->f_flag = ST_NOSUID;
1222 buf->f_namemax = 0; //??? how to get
1223
1224 rc = FSUSER_IsSdmcWritable(&writable);
1225 if(R_FAILED(rc) || !writable)
1226 buf->f_flag |= ST_RDONLY;
1227
1228 return 0;
1229 }
1230
1231 r->_errno = archive_translate_error(rc);
1232 return -1;
1233}
1234
1235/*! Truncate an open file
1236 *

Callers

nothing calls this directly

Calls 3

FSUSER_IsSdmcWritableFunction · 0.85
archive_translate_errorFunction · 0.85

Tested by

no test coverage detected