# Filesystem

**Detailed Description**

This section contains APIs, data structures and components to configure and acquire information from the filesystem manager.

- *group* Telematics\_platform\_filesystem

    - Enums

- enum EfsEvent

    - *Values:*

- enumerator START

    - Indicating the beginning of Backup/Restore operation

- enumerator END

    - Indicating the completion of Backup/Restore operation

- enum OperationStatus

    - *Values:*

- enumerator UNKNOWN

    - 

- enumerator SUCCESS

    - 

- enumerator FAILURE

    -

- enum OtaOperation

    - *Values:*

- enumerator INVALID

    - 

- enumerator START

    - 

- enumerator RESUME

    -

- struct EfsEventInfo

    - Public Members

- [EfsEvent](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux8platform8EfsEventE) event

    - The event being notified

- [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error

    - [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d) associated with the event

- class IFsListener : public [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[IServiceStatusListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00049.html#_CPPv4N5telux6common22IServiceStatusListenerE)

    - Listener class for getting notifications related to EFS backup/restore operations. The client needs to implement these methods as briefly as possible and avoid blocking calls in it. The methods in this class can be invoked from multiple different threads. Client needs to make sure that the implementation is thread-safe.

Public Functions

- inline virtual void OnEfsRestoreEvent([EfsEventInfo](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00565.html#_CPPv4N5telux8platform12EfsEventInfoE) event)

    - This function is called when a EFS restore operation is detected.

On platforms with Access control enabled, the client needs to have TELUX\_PLATFORM\_LISTEN\_FS\_EVENTS permission to receive this event.

- Parameters:

    - **event** – **[in]** Event related data. [telux::platform::EfsEventInfo](https://docs.qualcomm.com/doc/80-PF458-10/topic/filesystem.html#a00565).

- inline virtual void OnEfsBackupEvent([EfsEventInfo](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00565.html#_CPPv4N5telux8platform12EfsEventInfoE) event)

    - This function is called when a EFS backup operation is detected.

On platforms with Access control enabled, the client needs to have TELUX\_PLATFORM\_LISTEN\_FS\_EVENTS permission to receive this event.

- Parameters:

    - **event** – **[in]** Event related data. [telux::platform::EfsEventInfo](https://docs.qualcomm.com/doc/80-PF458-10/topic/filesystem.html#a00565).

- inline virtual void OnFsOperationImminentEvent(uint32\_t timeLeftToStart)

    - When the client is about to make an eCall it is expected to invoke prepareForEcall. This starts a timer within the FsManager which represents the max duration of the eCall. After which the filesystem operations will resume. This API will be invoked to let the client know that resumption of Fs operations is imminent. If the eCall has not yet ended, the client should call prepareForEcall again to reset the timer, which will continue to suspend the FS operations.

- Parameters:

    - **timeLeftToStart** – **[in]** The time in seconds after which filesystem operations shall re-enable.

- inline virtual ~IFsListener()

    - Destructor of [IFsListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/filesystem.html#a00566)

- class IFsManager

    - [IFsManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/filesystem.html#a00567) provides interface to to control and get notified about file system operations. This includes Embedded file system (EFS) operations.

Public Functions

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common13ServiceStatusE) getServiceStatus() = 0

    - This status indicates whether the object is in a usable state.

- Returns:

    - [telux::common::ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#a00023_1ga7063b4a1071b6581022e30b730684e4d) indicating the current status of the file system service.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[IFsListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00566.html#_CPPv4N5telux8platform11IFsListenerE)&gt; listener) = 0

    - Registers the listener for FileSystem Manager indications.

- Parameters:

    - **listener** – **[in]** - pointer to implemented listener.

- Returns:

    - status of the registration request.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[IFsListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00566.html#_CPPv4N5telux8platform11IFsListenerE)&gt; listener) = 0

    - Deregisters the previously registered listener.

- Parameters:

    - **listener** – **[in]** - pointer to registered listener that needs to be removed.

- Returns:

    - status of the deregistration request.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) startEfsBackup() = 0

    - Request to trigger an EFS backup. If the request is successful, the status of EFS backup is notified via [telux::platform::IFsListener::OnEfsBackupEvent](https://docs.qualcomm.com/doc/80-PF458-10/topic/filesystem.html#a00566_1a10df973caa3b6a9662f17f3f85db72ad).

On platforms with Access control enabled, Caller needs to have TELUX\_PLATFORM\_FS\_OPS\_CTRL permission to invoke this API successfully.

- Returns:

    - The status of the request - [telux::common::Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d)

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) prepareForEcall() = 0

    - The Filesystem Manager performs periodic operations which might be resource intensive. Such operations are not desired during other crucial events like an eCall. To avoid performing such operations during such events, the client is recommended to invoke this API before it initiates an eCall. This allows the filesystem manager to prepare the system to restrict any resource intensive operations like filesystem scrubbing during the eCall.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to invoke this API successfully.

Note

- The client would need to periodically invoke this API to ensure that the timer gets reset so that operations do not get re-enabled.

- Returns:

    - - [telux::common::Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d)

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) eCallCompleted() = 0

    - Once ecall complete, the client should invoke this API to re-enable filesystem operations like filesystem scrubbing.If the API invocation results in telux::common::Status::NOTREADY,indicating that the sub-system is not ready, the client should retry.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to invoke this API successfully.

- Returns:

    - - [telux::common::Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d)

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) prepareForOta([OtaOperation](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux8platform12OtaOperationE) otaOperation, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) responseCb) = 0

    - This API should be invoked to allow the filesystem manager to perform operations like prepare the filesystem for an OTA. In addition to this preparation, any on-going operations like scrubbing is stopped.

On platforms with Access control enabled, Caller needs to have TELUX\_PLATFORM\_OTA\_MGMT permission to invoke this API successfully.

- Parameters:

    - - **otaOperation** – **[in]** - [telux::platform::OtaOperation](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00026_1ga40bebe9b3851af5bd6b761147f95ca8d.html#a00026_1ga40bebe9b3851af5bd6b761147f95ca8d).
- **responseCb** – **[out]** - [telux::common::ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#a00236_1a8f614f0a0eeca90c94dad1967ca93bcd) The callback method to be invoked upon completion of OTA preparation and the response is indicated asynchronously.

- Returns:

    - - [telux::common::Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d)

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) otaCompleted([OperationStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux8platform15OperationStatusE) operationStatus, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) responseCb) = 0

    - This API should be invoked upon completion of OTA, this will allow the filesystem manager to perform post OTA verifications and re-enable operations that were disabled for performing the OTA, like scrubbing.

On platforms with Access control enabled, Caller needs to have TELUX\_PLATFORM\_OTA\_MGMT permission to invoke this API successfully.

- Parameters:

    - - **operationStatus** – **[in]** - [telux::platform::OperationStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00026_1gab13d58d99db5d91512d548fac71d8473.html#a00026_1gab13d58d99db5d91512d548fac71d8473) The status of the OTA operation that the client attempted.
- **responseCb** – **[out]** - [telux::common::ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#a00236_1a8f614f0a0eeca90c94dad1967ca93bcd) The callback method to be invoked upon completion of OTA related filesystem verifications and the response is indicated asynchronously.

- Returns:

    - - [telux::common::Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d)

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) startAbSync([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) responseCb) = 0

    - This API should be invoked when the client decides to mirror the active partition to the inactive partition.

On platforms with Access control enabled, Caller needs to have TELUX\_PLATFORM\_OTA\_MGMT permission to invoke this API successfully.

- Parameters:

    - **responseCb** – **[out]** - [telux::common::ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#a00236_1a8f614f0a0eeca90c94dad1967ca93bcd) The callback method to be invoked when the mirroring operation is completed and the response is indicated asynchronously.

- Returns:

    - - [telux::common::Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d.html#a00023_1ga45eeeff7c2860e02ae447d588d3d6e4d)

- inline virtual ~IFsManager()

    - Destructor of [IFsManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/filesystem.html#a00567)

Last Published: Mar 31, 2026

[Previous Topic
Platform](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/platform.md) [Next Topic
DeviceInfo](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/device_info.md)