Snapdragon® Telematics Application Framework (TelAF) Interface Specification
taf_flash_common.h File Reference
#include "legato.h"

Go to the source code of this file.

Macros

#define IFGEN_TAF_FLASH_PROTOCOL_ID   "b36da29f4d7707ec3eceaa2f60f31c0a"
 
#define IFGEN_TAF_FLASH_MSG_SIZE   16404
 
#define TAF_FLASH_PARTITION_NAME_MAX_BYTES   128
 
#define TAF_FLASH_MTD_PAGE_MAX_WRITE_SIZE   4096
 
#define TAF_FLASH_MTD_PAGE_MAX_READ_SIZE   4096
 
#define TAF_FLASH_MTD_MAX_READ_SIZE   16384
 
#define TAF_FLASH_MTD_MAX_WRITE_SIZE   16384
 
#define TAF_FLASH_VOLUME_NAME_MAX_BYTES   64
 
#define TAF_FLASH_VOLUME_TYPE_MAX_BYTES   128
 
#define TAF_FLASH_UBI_MAX_READ_SIZE   16384
 
#define TAF_FLASH_UBI_MAX_WRITE_SIZE   16384
 

Typedefs

typedef struct taf_flash_Partition * taf_flash_PartitionRef_t
 
typedef struct taf_flash_Volume * taf_flash_VolumeRef_t
 

Enumerations

enum  taf_flash_OpenMode_t { TAF_FLASH_READ_ONLY = 1, TAF_FLASH_WRITE_ONLY = 2, TAF_FLASH_READ_WRITE = 3 }
 

Functions

LE_SHARED bool ifgen_taf_flash_HasLocalBinding (void)
 
LE_SHARED void ifgen_taf_flash_InitCommonData (void)
 
LE_SHARED void ifgen_taf_flash_CleanupCommonData (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_flash_OpenSession (le_msg_SessionRef_t _ifgen_sessionRef, bool isBlocking)
 
LE_SHARED void ifgen_taf_flash_Init (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdOpen (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL partitionName, taf_flash_OpenMode_t mode, taf_flash_PartitionRef_t *partitionRefPtr)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdClose (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdInformation (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t *blocksNumberPtr, uint32_t *badBlocksNumberPtr, uint32_t *blockSizePtr, uint32_t *pageSizePtr)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdEraseBlock (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t blockIndex)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdReadPage (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t pageIndex, uint8_t *readDataPtr, size_t *readDataSizePtr)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdWritePage (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t pageIndex, const uint8_t *writeDataPtr, size_t writeDataSize)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdRead (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t offset, uint8_t *readDataPtr, size_t *readDataSizePtr)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdWrite (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t offset, const uint8_t *writeDataPtr, size_t writeDataSize)
 
LE_SHARED le_result_t ifgen_taf_flash_MtdErase (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef)
 
LE_SHARED bool ifgen_taf_flash_MtdIsBlockGood (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_PartitionRef_t partitionRef, uint32_t blockIndex)
 
LE_SHARED le_result_t ifgen_taf_flash_UbiOpen (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL volumeName, taf_flash_OpenMode_t mode, taf_flash_VolumeRef_t *volumeRefPtr)
 
LE_SHARED le_result_t ifgen_taf_flash_UbiClose (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_VolumeRef_t volumeRef)
 
LE_SHARED le_result_t ifgen_taf_flash_UbiInformation (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_VolumeRef_t volumeRef, uint32_t *lebNumberPtr, uint32_t *freeLebNumberPtr, uint32_t *volumeSizePtr)
 
LE_SHARED le_result_t ifgen_taf_flash_UbiRead (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_VolumeRef_t volumeRef, uint32_t offset, uint8_t *readDataPtr, size_t *readDataSizePtr)
 
LE_SHARED le_result_t ifgen_taf_flash_UbiInitWrite (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_VolumeRef_t volumeRef, int64_t writeBytes)
 
LE_SHARED le_result_t ifgen_taf_flash_UbiWrite (le_msg_SessionRef_t _ifgen_sessionRef, taf_flash_VolumeRef_t volumeRef, const uint8_t *writeDataPtr, size_t writeDataSize)
 

Macro Definition Documentation

◆ IFGEN_TAF_FLASH_PROTOCOL_ID

#define IFGEN_TAF_FLASH_PROTOCOL_ID   "b36da29f4d7707ec3eceaa2f60f31c0a"

◆ IFGEN_TAF_FLASH_MSG_SIZE

#define IFGEN_TAF_FLASH_MSG_SIZE   16404

◆ TAF_FLASH_PARTITION_NAME_MAX_BYTES

#define TAF_FLASH_PARTITION_NAME_MAX_BYTES   128

Maximum partition name length with null character(s).

◆ TAF_FLASH_MTD_PAGE_MAX_WRITE_SIZE

#define TAF_FLASH_MTD_PAGE_MAX_WRITE_SIZE   4096

Maximum byte size for buffer to write data to an MTD page.

◆ TAF_FLASH_MTD_PAGE_MAX_READ_SIZE

#define TAF_FLASH_MTD_PAGE_MAX_READ_SIZE   4096

Maximum byte size for buffer to read data from an MTD page.

◆ TAF_FLASH_MTD_MAX_READ_SIZE

#define TAF_FLASH_MTD_MAX_READ_SIZE   16384

Maximum byte size for buffer to read data from MTD partition.

◆ TAF_FLASH_MTD_MAX_WRITE_SIZE

#define TAF_FLASH_MTD_MAX_WRITE_SIZE   16384

Maximum byte size for buffer to write data to MTD partition.

◆ TAF_FLASH_VOLUME_NAME_MAX_BYTES

#define TAF_FLASH_VOLUME_NAME_MAX_BYTES   64

Maximum volume name length with null character(s).

◆ TAF_FLASH_VOLUME_TYPE_MAX_BYTES

#define TAF_FLASH_VOLUME_TYPE_MAX_BYTES   128

Maximum volume type length with null character(s).

◆ TAF_FLASH_UBI_MAX_READ_SIZE

#define TAF_FLASH_UBI_MAX_READ_SIZE   16384

Maximum byte size for buffer to read data from UBI volume.

◆ TAF_FLASH_UBI_MAX_WRITE_SIZE

#define TAF_FLASH_UBI_MAX_WRITE_SIZE   16384

Maximum byte size for buffer to write data to UBI volume.

Typedef Documentation

◆ taf_flash_PartitionRef_t

typedef struct taf_flash_Partition* taf_flash_PartitionRef_t

The reference of a partition.

◆ taf_flash_VolumeRef_t

typedef struct taf_flash_Volume* taf_flash_VolumeRef_t

The reference of a volume.

Enumeration Type Documentation

◆ taf_flash_OpenMode_t

Open mode enum.

Enumerator
TAF_FLASH_READ_ONLY 

Read-Only mode.

TAF_FLASH_WRITE_ONLY 

Write-Only mode.

TAF_FLASH_READ_WRITE 

Read and Write mode.

Function Documentation

◆ ifgen_taf_flash_HasLocalBinding()

LE_SHARED bool ifgen_taf_flash_HasLocalBinding ( void  )

Get if this client bound locally.

◆ ifgen_taf_flash_InitCommonData()

LE_SHARED void ifgen_taf_flash_InitCommonData ( void  )

Init data that is common across all threads

◆ ifgen_taf_flash_CleanupCommonData()

LE_SHARED void ifgen_taf_flash_CleanupCommonData ( le_msg_SessionRef_t  _ifgen_sessionRef)

Cleanup the data of a session

◆ ifgen_taf_flash_OpenSession()

LE_SHARED le_result_t ifgen_taf_flash_OpenSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
bool  isBlocking 
)

Perform common initialization and open a session

◆ ifgen_taf_flash_Init()

LE_SHARED void ifgen_taf_flash_Init ( le_msg_SessionRef_t  _ifgen_sessionRef)

Initiates flash access reference map and memory pool.

Note
This function should be called once before calling other flash access APIs.
Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.

◆ ifgen_taf_flash_MtdOpen()

LE_SHARED le_result_t ifgen_taf_flash_MtdOpen ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  partitionName,
taf_flash_OpenMode_t  mode,
taf_flash_PartitionRef_t partitionRefPtr 
)

Opens an MTD partition for read and write.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionNameMTD partition name.
[in]modeOpening mode.
[out]partitionRefPtrThe MTD partition reference.

◆ ifgen_taf_flash_MtdClose()

LE_SHARED le_result_t ifgen_taf_flash_MtdClose ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef 
)

Closes an MTD partition.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.

◆ ifgen_taf_flash_MtdInformation()

LE_SHARED le_result_t ifgen_taf_flash_MtdInformation ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t *  blocksNumberPtr,
uint32_t *  badBlocksNumberPtr,
uint32_t *  blockSizePtr,
uint32_t *  pageSizePtr 
)

Gets an information about the given MTD partition.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.
[out]blocksNumberPtrTotal blocks number.
[out]badBlocksNumberPtrBad blocks number.
[out]blockSizePtrBlock size.
[out]pageSizePtrPage size.

◆ ifgen_taf_flash_MtdEraseBlock()

LE_SHARED le_result_t ifgen_taf_flash_MtdEraseBlock ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t  blockIndex 
)

Erases an MTD block.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.
[in]blockIndexLogical block index.

◆ ifgen_taf_flash_MtdReadPage()

LE_SHARED le_result_t ifgen_taf_flash_MtdReadPage ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t  pageIndex,
uint8_t *  readDataPtr,
size_t *  readDataSizePtr 
)

Reads an MTD page.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.
[in]pageIndexPage index.
[out]readDataPtrBuffer read from the MTD page.
[in,out]readDataSizePtr

◆ ifgen_taf_flash_MtdWritePage()

LE_SHARED le_result_t ifgen_taf_flash_MtdWritePage ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t  pageIndex,
const uint8_t *  writeDataPtr,
size_t  writeDataSize 
)

Writes MTD page.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.
[in]pageIndexPage index.
[in]writeDataPtrBuffer to be written to the MTD block.
[in]writeDataSize

◆ ifgen_taf_flash_MtdRead()

LE_SHARED le_result_t ifgen_taf_flash_MtdRead ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t  offset,
uint8_t *  readDataPtr,
size_t *  readDataSizePtr 
)

Reads an MTD partition.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.
[in]offsetThe MTD partition offset.
[out]readDataPtrBuffer read from the MTD page.
[in,out]readDataSizePtr

◆ ifgen_taf_flash_MtdWrite()

LE_SHARED le_result_t ifgen_taf_flash_MtdWrite ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t  offset,
const uint8_t *  writeDataPtr,
size_t  writeDataSize 
)

Writes MTD partition.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.
[in]offsetThe MTD partition offset.
[in]writeDataPtrBuffer to be written to the MTD block.
[in]writeDataSize

◆ ifgen_taf_flash_MtdErase()

LE_SHARED le_result_t ifgen_taf_flash_MtdErase ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef 
)

Erases MTD partition.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]partitionRefThe MTD partition reference.

◆ ifgen_taf_flash_MtdIsBlockGood()

LE_SHARED bool ifgen_taf_flash_MtdIsBlockGood ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_PartitionRef_t  partitionRef,
uint32_t  blockIndex 
)

Checks if an MTD block is good.

Returns
  • true – Good block.
  • false – Bad block.
Parameters
[in]partitionRefThe MTD partition reference.
[in]blockIndexLogical block index.

◆ ifgen_taf_flash_UbiOpen()

LE_SHARED le_result_t ifgen_taf_flash_UbiOpen ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  volumeName,
taf_flash_OpenMode_t  mode,
taf_flash_VolumeRef_t volumeRefPtr 
)

Opens UBI volume for read and write.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]volumeNameUBI volume name.
[in]modeOpening mode.
[out]volumeRefPtrThe UBI volume reference.

◆ ifgen_taf_flash_UbiClose()

LE_SHARED le_result_t ifgen_taf_flash_UbiClose ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_VolumeRef_t  volumeRef 
)

Closes UBI volume.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]volumeRefThe UBI volume reference.

◆ ifgen_taf_flash_UbiInformation()

LE_SHARED le_result_t ifgen_taf_flash_UbiInformation ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_VolumeRef_t  volumeRef,
uint32_t *  lebNumberPtr,
uint32_t *  freeLebNumberPtr,
uint32_t *  volumeSizePtr 
)

Gets UBI volume information.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]volumeRefThe UBI volume reference.
[out]lebNumberPtrTotal logical erase blocks number.
[out]freeLebNumberPtrFree logical erase blocks number.
[out]volumeSizePtrVolume size.

◆ ifgen_taf_flash_UbiRead()

LE_SHARED le_result_t ifgen_taf_flash_UbiRead ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_VolumeRef_t  volumeRef,
uint32_t  offset,
uint8_t *  readDataPtr,
size_t *  readDataSizePtr 
)

Reads UBI volume.

Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]volumeRefThe UBI volume reference.
[in]offsetThe UBI volume offset.
[out]readDataPtrBuffer read from UBI volume.
[in,out]readDataSizePtr

◆ ifgen_taf_flash_UbiInitWrite()

LE_SHARED le_result_t ifgen_taf_flash_UbiInitWrite ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_VolumeRef_t  volumeRef,
int64_t  writeBytes 
)

Initiates write size of UBI volume.

Note
Users should set the number of bytes before subsequent write operations.
Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]volumeRefThe UBI volume reference.
[in]writeBytesThe number of bytes set to write to UBI volume.

◆ ifgen_taf_flash_UbiWrite()

LE_SHARED le_result_t ifgen_taf_flash_UbiWrite ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_flash_VolumeRef_t  volumeRef,
const uint8_t *  writeDataPtr,
size_t  writeDataSize 
)

Writes data to UBI volume.

Note
Users should keep the context of writing UBI volume.
Returns
  • LE_FAULT – Failed.
  • LE_OK – Succeeded.
Parameters
[in]volumeRefThe UBI volume reference.
[in]writeDataPtrBuffer to be written to UBI volume.
[in]writeDataSize