Mistake on this page? Email us
PAL Services Public Functions

Functions

palStatus_t pal_fsMkDir (const char *pathName)
 This function attempts to create a directory named pathName. More...
 
palStatus_t pal_fsRmDir (const char *pathName)
 This function deletes a directory. More...
 
palStatus_t pal_fsFopen (const char *pathName, pal_fsFileMode_t mode, palFileDescriptor_t *fd)
 This function opens the file whose name is specified in the parameter pathName and associates it with a stream that can be identified in future operations by the fd pointer returned. More...
 
palStatus_t pal_fsFclose (palFileDescriptor_t *fd)
 This function closes an open file object. More...
 
palStatus_t pal_fsFread (palFileDescriptor_t *fd, void *buffer, size_t numOfBytes, size_t *numberOfBytesRead)
 This function reads an array of bytes from the stream and stores it in the block of memory specified by buffer. The position indicator of the stream is advanced by the total amount of bytes read. More...
 
palStatus_t pal_fsFwrite (palFileDescriptor_t *fd, const void *buffer, size_t numOfBytes, size_t *numberOfBytesWritten)
 This function starts to write data from buffer to the file at the position pointed by the read/write pointer. More...
 
palStatus_t pal_fsFseek (palFileDescriptor_t *fd, off_t offset, pal_fsOffset_t whence)
 This function moves the file read/write pointer without any read/write operation to the file. More...
 
palStatus_t pal_fsFtell (palFileDescriptor_t *fd, off_t *pos)
 This function gets the current read/write pointer of a file. More...
 
palStatus_t pal_fsUnlink (const char *pathName)
 This function deletes a single file from the file system. More...
 
palStatus_t pal_fsRmFiles (const char *pathName)
 This function deletes all files and folders in a specified folder from the file system. Flat remove only. More...
 
palStatus_t pal_fsCpFolder (const char *pathNameSrc, char *pathNameDest)
 This function copies all files from the source folder to the destination folder. Flat copy only. More...
 
palStatus_t pal_fsSetMountPoint (pal_fsStorageID_t dataID, const char *Path)
 This function sets the mount directory for the given storage ID (primary or secondary). More...
 
palStatus_t pal_fsGetMountPoint (pal_fsStorageID_t dataID, size_t length, char *Path)
 This function gets the mount directory for the given storage ID (primary or secondary). More...
 
palStatus_t pal_fsFormat (pal_fsStorageID_t dataID)
 This function formats a given SD partition. More...
 
bool pal_fsIsPrivatePartition (pal_fsStorageID_t dataID)
 This function will return whether a given partition is used only by PAL or not. More...
 
void pal_fsCleanup (void)
 This function will perform clean up on all file system resources. More...
 

Detailed Description

Function Documentation

void pal_fsCleanup ( void  )

This function will perform clean up on all file system resources.

palStatus_t pal_fsCpFolder ( const char *  pathNameSrc,
char *  pathNameDest 
)

This function copies all files from the source folder to the destination folder. Flat copy only.

Parameters
[in]pathNameSrcA pointer to a null-terminated string that specifies the source folder.
[in]pathNameDestA pointer to a null-terminated string that specifies the destination folder. The folder MUST already exist.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
Both folders must not be open. If the folders do not exist, the function fails.
palStatus_t pal_fsFclose ( palFileDescriptor_t fd)

This function closes an open file object.

Parameters
[in]fdA pointer to the open file object structure to be closed.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR - see error code palError_t.
Note
When the function has completed successfully, the file object is no longer valid and it can be discarded.
palStatus_t pal_fsFopen ( const char *  pathName,
pal_fsFileMode_t  mode,
palFileDescriptor_t fd 
)

This function opens the file whose name is specified in the parameter pathName and associates it with a stream that can be identified in future operations by the fd pointer returned.

Parameters
[out]fdThe file descriptor to the file entered in the pathName.
[in]*pathNameA pointer to the null-terminated string that specifies the file name to open or create.
[in]modeA mode flag that specifies the type of access and open method for the file.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
The folder path shall end with "/".

Example

//Copy File from "File1" to "File2"
palFileDescriptor_t fd1 = NULL,fd2 = NULL ; // File Object 1 & 2
uint8 buffer[1024];
size_t bytes_read = 0, Bytes_wrote = 0;
//Open first file with Read permission
ret = PAL_ERR_FS_fopen(&fd1, "File1", PAL_ERR_FS_READWRITEEXCLUSIVE);
if(ret) {//Error}
//Create second file with Read/Write permissions
ret = PAL_ERR_FS_fopen(&fd2, "File2", PAL_ERR_FS_READWRITEEXCLUSIVE);
if(ret) {//Error}
// Copy source to destination
for (;;)
{
ret = PAL_ERR_FS_read(&fd1, buffer, sizeof(buffer), &bytes_read); // Read a chunk of source file
if (ret || bytes_read == 0) break; // error or EOF
ret = PAL_ERR_FS_write(&fd2, buffer, sizeof(buffer), &Bytes_wrote); // Write it to the destination file
if (ret || Bytes_wrote < bytes_read) break; // error or disk full
}
PAL_ERR_FS_close(&fd1);
PAL_ERR_FS_close(&fd2);
}
palStatus_t pal_fsFormat ( pal_fsStorageID_t  dataID)

This function formats a given SD partition.

Parameters
[in]dataIDThe ID of the partition to be formatted.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
PAL_ERR_INVALID_ARGUMENT an invalid partitionID.
Note
The actual partition values mapped to the IDs is determined by the porting layer.
palStatus_t pal_fsFread ( palFileDescriptor_t fd,
void *  buffer,
size_t  numOfBytes,
size_t *  numberOfBytesRead 
)

This function reads an array of bytes from the stream and stores it in the block of memory specified by buffer. The position indicator of the stream is advanced by the total amount of bytes read.

Parameters
[in]fdA pointer to the open file object structure.
[in]bufferThe buffer to store the read data.
[in]numOfBytesThe number of bytes to read.
[out]numberOfBytesReadThe number of bytes read.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
When the function has completed successfully, numberOfBytesRead should be checked to detect end of the file. If numberOfBytesRead is less than numOfBytes, the read/write pointer has reached the end of the file during the read operation or there is an error.
palStatus_t pal_fsFseek ( palFileDescriptor_t fd,
off_t  offset,
pal_fsOffset_t  whence 
)

This function moves the file read/write pointer without any read/write operation to the file.

Parameters
[in]fdA pointer to the open file object structure.
[in]offsetThe byte offset from the top of the file to set the read/write pointer.
[out]whenceWhere the offset is relative to.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
The whence options are:
  1. PAL_ERR_FS_SEEKSET - Relative to the start of the file.
  2. PAL_ERR_FS_SEEKCUR - The current position indicator.
  3. PAL_ERR_FS_SEEKEND - End-of-file.

Example

palFileDescriptor_t fd1 = NULL; // File Object 1
uint8 buffer[1024];
size_t bytes_read = 0, Bytes_wrote = 0;
//Open file with Read permission
ret = PAL_ERR_FS_fopen(&fd1, "File1", PAL_ERR_FS_READ);
if(ret) {//Error}
ret = PAL_ERR_FS_fseek(&fd1, 500, PAL_ERR_FS_SEEKSET)
palStatus_t pal_fsFtell ( palFileDescriptor_t fd,
off_t *  pos 
)

This function gets the current read/write pointer of a file.

Parameters
[in]fdA pointer to the open file object structure.
[out]posA pointer to a variable that receives the current file position.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
palStatus_t pal_fsFwrite ( palFileDescriptor_t fd,
const void *  buffer,
size_t  numOfBytes,
size_t *  numberOfBytesWritten 
)

This function starts to write data from buffer to the file at the position pointed by the read/write pointer.

Parameters
[in]fdA pointer to the open file object structure.
[in]bufferA pointer to the data to be written.
[in]numOfBytesThe number of bytes to write.
[out]numberOfBytesWrittenThe number of bytes written.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
The read/write pointer advances as number of bytes written. When the function has completed successfully,
numberOfBytesWritten should be checked to detect the whether the disk is full. If numberOfBytesWritten is less than numOfBytes, the volume got full during the write operation.
palStatus_t pal_fsGetMountPoint ( pal_fsStorageID_t  dataID,
size_t  length,
char *  Path 
)

This function gets the mount directory for the given storage ID (primary or secondary).

The function copies the path to a buffer pre-allocated by the user.

Parameters
[in]dataIDPointer to the target storage.
[in]lengthThe length of the buffer.
[out]PathA pointer to a pre-allocated buffer with size PAL_MAX_FOLDER_DEPTH_CHAR + 1 chars. The plus 1 is to account for the '\0' terminator at the end of the buffer
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
bool pal_fsIsPrivatePartition ( pal_fsStorageID_t  dataID)

This function will return whether a given partition is used only by PAL or not.

Parameters
[in]dataID- the ID of the data to be cleared.
Returns
true - if partition is used only by pal.
false - if partition is used by other component then pal.
Note
The actual partition values mapped the IDs will be determined by the porting layer.
palStatus_t pal_fsMkDir ( const char *  pathName)

This function attempts to create a directory named pathName.

Parameters
[in]*pathNameA pointer to the null-terminated string that specifies the directory name to create.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
To remove a directory, use PAL_ERR_FS_rmdir.

Example

ret = PAL_ERR_FS_mkdir("Dir1");
if(!ret)
{
//Error
}
palStatus_t pal_fsRmDir ( const char *  pathName)

This function deletes a directory.

Parameters
[in]*pathNameA pointer to the null-terminated string that specifies the directory name to be deleted.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
The deleted directory must be both empty and closed and the folder path end with / .

Example

ret = PAL_ERR_FS_mkdir("Dir1"); //Create folder name "Dir1"
if(!ret)
{
//Error
}
ret = PAL_ERR_FS_rmdir("Dir1); //Remove directory from partition
if(!ret)
{
//Error
}
palStatus_t pal_fsRmFiles ( const char *  pathName)

This function deletes all files and folders in a specified folder from the file system. Flat remove only.

Parameters
[in]pathNameA pointer to a null-terminated string that specifies the folder.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
The folder must not be open and the folder path must end with / .
palStatus_t pal_fsSetMountPoint ( pal_fsStorageID_t  dataID,
const char *  Path 
)

This function sets the mount directory for the given storage ID (primary or secondary).

Parameters
[in]dataIDPointer to the target storage.
[in]PathA pointer to a null-terminated string that specifies the root folder.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR For error code description, see palError_t.
Note
If called with NULL, the ESFS root folder is set to default PAL_SOURCE_FOLDER.
The folder path must end with / .
palStatus_t pal_fsUnlink ( const char *  pathName)

This function deletes a single file from the file system.

Parameters
[in]pathNameA pointer to a null-terminated string that specifies the file to be removed.
Returns
PAL_SUCCESS upon successful operation.
PAL_FILE_SYSTEM_ERROR - see error code description palError_t.
Note
The file must not be open.