Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qstorageinfo_linux.cpp File Reference

(2a210e25b6c19231e9b98c14bfdf4d1376d43e97)

#include "qstorageinfo_linux_p.h"
#include <private/qcore_unix_p.h>
#include <private/qlocale_tools_p.h>
#include <private/qtools_p.h>
#include <QtCore/qdirlisting.h>
#include <QtCore/qsystemdetection.h>
#include <q20memory.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/statfs.h>
Include dependency graph for qstorageinfo_linux.cpp:

Go to the source code of this file.

Macros

#define FSLABEL_MAX   256
#define FS_IOC_GETFSLABEL   _IOR(0x94, 49, char[FSLABEL_MAX])
#define ST_RDONLY   0x0001 /* mount read-only */

Functions

static std::optional< dev_t > deviceNumber (QByteArrayView devno)
static QByteArray parseMangledPath (QByteArrayView path)
static void tokenizeLine (std::array< QByteArrayView, FieldCount > &fields, QByteArrayView line)
std::vector< MountInfodoParseMountInfo (const QByteArray &mountinfo, FilterMountInfo filter)
static QString decodeFsEncString (QString &&str)
static dev_t deviceIdForPath (const QString &device)
static quint64 mountIdForPath (int fd)
static quint64 retrieveDeviceId (const QByteArray &device, quint64 deviceId=0)
static QDirListing devicesByLabel ()
static auto retrieveLabels ()
static std::optional< QStringretrieveLabelViaIoctl (int fd)
static QString retrieveLabel (const QStorageInfoPrivate &d, int fd, quint64 deviceId)
static std::vector< MountInfoparseMountInfo (FilterMountInfo filter=FilterMountInfo::All)

Variables

static const char MountInfoPath [] = "/proc/self/mountinfo"
static constexpr short MountId = 0
static constexpr short DevNo = 2
static constexpr short FsRoot = 3
static constexpr short MountPoint = 4
static constexpr short MountOptions = 5
static constexpr short FsType = 8
static constexpr short MountSource = 9
static constexpr short SuperOptions = 10
static constexpr short FieldCount = 11

Macro Definition Documentation

◆ FS_IOC_GETFSLABEL

#define FS_IOC_GETFSLABEL   _IOR(0x94, 49, char[FSLABEL_MAX])

Definition at line 28 of file qstorageinfo_linux.cpp.

◆ FSLABEL_MAX

#define FSLABEL_MAX   256

Definition at line 25 of file qstorageinfo_linux.cpp.

◆ ST_RDONLY

#define ST_RDONLY   0x0001 /* mount read-only */

Definition at line 33 of file qstorageinfo_linux.cpp.

Function Documentation

◆ decodeFsEncString()

QString decodeFsEncString ( QString && str)
static

Definition at line 270 of file qstorageinfo_linux.cpp.

◆ deviceIdForPath()

dev_t deviceIdForPath ( const QString & device)
inlinestatic

Definition at line 306 of file qstorageinfo_linux.cpp.

◆ deviceNumber()

std::optional< dev_t > deviceNumber ( QByteArrayView devno)
static

Definition at line 50 of file qstorageinfo_linux.cpp.

◆ devicesByLabel()

QDirListing devicesByLabel ( )
static

Definition at line 352 of file qstorageinfo_linux.cpp.

◆ doParseMountInfo()

std::vector< MountInfo > doParseMountInfo ( const QByteArray & mountinfo,
FilterMountInfo filter )

Definition at line 170 of file qstorageinfo_linux.cpp.

References FsRoot, FsType, MountId, and MountInfoPath.

◆ mountIdForPath()

quint64 mountIdForPath ( int fd)
inlinestatic

Definition at line 314 of file qstorageinfo_linux.cpp.

◆ parseMangledPath()

QByteArray parseMangledPath ( QByteArrayView path)
static

Definition at line 72 of file qstorageinfo_linux.cpp.

◆ parseMountInfo()

std::vector< MountInfo > parseMountInfo ( FilterMountInfo filter = FilterMountInfo::All)
static

Definition at line 422 of file qstorageinfo_linux.cpp.

◆ retrieveDeviceId()

quint64 retrieveDeviceId ( const QByteArray & device,
quint64 deviceId = 0 )
inlinestatic

Definition at line 328 of file qstorageinfo_linux.cpp.

◆ retrieveLabel()

QString retrieveLabel ( const QStorageInfoPrivate & d,
int fd,
quint64 deviceId )
inlinestatic

Definition at line 391 of file qstorageinfo_linux.cpp.

◆ retrieveLabels()

auto retrieveLabels ( )
inlinestatic

Definition at line 359 of file qstorageinfo_linux.cpp.

◆ retrieveLabelViaIoctl()

std::optional< QString > retrieveLabelViaIoctl ( int fd)
static

Definition at line 376 of file qstorageinfo_linux.cpp.

◆ tokenizeLine()

void tokenizeLine ( std::array< QByteArrayView, FieldCount > & fields,
QByteArrayView line )
static

Definition at line 126 of file qstorageinfo_linux.cpp.

References FieldCount, FsType, MountOptions, and SuperOptions.

Variable Documentation

◆ DevNo

constexpr short DevNo = 2
staticconstexpr

Definition at line 113 of file qstorageinfo_linux.cpp.

◆ FieldCount

constexpr short FieldCount = 11
staticconstexpr

Definition at line 122 of file qstorageinfo_linux.cpp.

Referenced by tokenizeLine().

◆ FsRoot

constexpr short FsRoot = 3
staticconstexpr

Definition at line 114 of file qstorageinfo_linux.cpp.

Referenced by doParseMountInfo().

◆ FsType

constexpr short FsType = 8
staticconstexpr

Definition at line 119 of file qstorageinfo_linux.cpp.

Referenced by doParseMountInfo(), and tokenizeLine().

◆ MountId

constexpr short MountId = 0
staticconstexpr

Definition at line 111 of file qstorageinfo_linux.cpp.

Referenced by doParseMountInfo().

◆ MountInfoPath

const char MountInfoPath = "/proc/self/mountinfo"
static

Definition at line 48 of file qstorageinfo_linux.cpp.

Referenced by doParseMountInfo().

◆ MountOptions

constexpr short MountOptions = 5
staticconstexpr

Definition at line 116 of file qstorageinfo_linux.cpp.

Referenced by tokenizeLine().

◆ MountPoint

constexpr short MountPoint = 4
staticconstexpr

Definition at line 115 of file qstorageinfo_linux.cpp.

◆ MountSource

constexpr short MountSource = 9
staticconstexpr

Definition at line 120 of file qstorageinfo_linux.cpp.

◆ SuperOptions

constexpr short SuperOptions = 10
staticconstexpr

Definition at line 121 of file qstorageinfo_linux.cpp.

Referenced by tokenizeLine().