| /****************************************************************************** |
| * |
| * Copyright (C) 2003-2012 Broadcom Corporation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ******************************************************************************/ |
| |
| /****************************************************************************** |
| * |
| * This is the interface file for the synchronization server call-out |
| * functions. |
| * |
| ******************************************************************************/ |
| #ifndef BTA_FS_CO_H |
| #define BTA_FS_CO_H |
| |
| #include <time.h> |
| |
| #include "bta_api.h" |
| #include "goep_fs.h" |
| #include "obx_api.h" |
| |
| /***************************************************************************** |
| ** Constants and Data Types |
| *****************************************************************************/ |
| |
| #ifndef BTA_FS_CO_MAX_SSN_ENTRIES |
| #define BTA_FS_CO_MAX_SSN_ENTRIES 10 |
| #endif |
| |
| /* Maximum path length supported by FS_CO */ |
| #ifndef BTA_FS_CO_PATH_LEN |
| #define BTA_FS_CO_PATH_LEN 294 |
| #endif |
| |
| #ifndef BTA_FS_CO_TEST_ROOT |
| #define BTA_FS_CO_TEST_ROOT "test_files" |
| #endif |
| |
| #define BTA_FS_CO_TEST_TYPE_NONE 0 |
| #define BTA_FS_CO_TEST_TYPE_REJECT 1 |
| #define BTA_FS_CO_TEST_TYPE_SUSPEND 2 |
| |
| #ifndef BTA_FS_CO_TEST_AB_END |
| #define BTA_FS_CO_TEST_AB_END BTA_FS_CO_TEST_TYPE_NONE |
| #endif |
| |
| /************************** |
| ** Common Definitions |
| ***************************/ |
| |
| /* Status codes returned by call-out functions, or in call-in functions as status */ |
| #define BTA_FS_CO_OK GOEP_OK |
| #define BTA_FS_CO_FAIL GOEP_FAIL /* Used to pass all other errors */ |
| #define BTA_FS_CO_EACCES GOEP_EACCES |
| #define BTA_FS_CO_ENOTEMPTY GOEP_ENOTEMPTY |
| #define BTA_FS_CO_EOF GOEP_EOF |
| #define BTA_FS_CO_EODIR GOEP_EODIR |
| #define BTA_FS_CO_ENOSPACE GOEP_ENOSPACE/* Returned in bta_fs_ci_open if no room */ |
| #define BTA_FS_CO_EIS_DIR GOEP_EIS_DIR |
| #define BTA_FS_CO_RESUME GOEP_RESUME /* used in ci_open, on resume */ |
| #define BTA_FS_CO_NONE GOEP_NONE /* used in ci_open, on resume (no file to resume) */ |
| |
| typedef UINT16 tBTA_FS_CO_STATUS; |
| |
| /* the index to the permission flags */ |
| #define BTA_FS_PERM_USER 0 |
| #define BTA_FS_PERM_GROUP 1 |
| #define BTA_FS_PERM_OTHER 2 |
| /* max number of the permission flags */ |
| #define BTA_FS_PERM_SIZE 3 |
| |
| /* Flags passed to the open function (bta_fs_co_open) |
| ** Values are OR'd together. (First 3 are |
| ** mutually exclusive. |
| */ |
| #define BTA_FS_O_RDONLY GOEP_O_RDONLY |
| #define BTA_FS_O_WRONLY GOEP_O_WRONLY |
| #define BTA_FS_O_RDWR GOEP_O_RDWR |
| |
| #define BTA_FS_O_CREAT GOEP_O_CREAT |
| #define BTA_FS_O_EXCL GOEP_O_EXCL |
| #define BTA_FS_O_TRUNC GOEP_O_TRUNC |
| |
| #define BTA_FS_O_MODE_MASK(x) (((UINT16)(x)) & 0x0003) |
| |
| /* Origin for the bta_fs_co_seek function */ |
| #define BTA_FS_SEEK_SET GOEP_SEEK_SET |
| #define BTA_FS_SEEK_CUR GOEP_SEEK_CUR |
| #define BTA_FS_SEEK_END GOEP_SEEK_END |
| |
| /* mode field in bta_fs_co_access callout */ |
| #define BTA_FS_ACC_EXIST GOEP_ACC_EXIST |
| #define BTA_FS_ACC_READ GOEP_ACC_READ |
| #define BTA_FS_ACC_RDWR GOEP_ACC_RDWR |
| |
| #define BTA_FS_LEN_UNKNOWN GOEP_LEN_UNKNOWN |
| #define BTA_FS_INVALID_FD GOEP_INVALID_FD |
| #define BTA_FS_INVALID_APP_ID (0xFF) /* this app_id is reserved */ |
| |
| /* mode field in tBTA_FS_DIRENTRY (OR'd together) */ |
| #define BTA_FS_A_RDONLY GOEP_A_RDONLY |
| #define BTA_FS_A_DIR GOEP_A_DIR /* Entry is a sub directory */ |
| |
| #define BTA_FS_CTIME_LEN GOEP_CTIME_LEN /* Creation time "yyyymmddTHHMMSSZ" */ |
| |
| /* Return structure type for a directory entry */ |
| typedef struct |
| { |
| UINT32 refdata; /* holder for OS specific data used to get next entry */ |
| UINT32 filesize; |
| char crtime[BTA_FS_CTIME_LEN]; /* "yyyymmddTHHMMSSZ", or "" if none */ |
| char *p_name; /* Contains the addr of memory to copy name into */ |
| UINT8 mode; /* BTA_FS_A_RDONLY and/or BTA_FS_A_DIR */ |
| } tBTA_FS_DIRENTRY; |
| |
| /* session state */ |
| enum |
| { |
| BTA_FS_CO_SESS_ST_NONE, |
| BTA_FS_CO_SESS_ST_ACTIVE, |
| BTA_FS_CO_SESS_ST_SUSPEND, |
| BTA_FS_CO_SESS_ST_RESUMING |
| }; |
| typedef UINT8 tBTA_FS_CO_SESS_ST; |
| |
| |
| |
| /* a data type to keep an array of ssn/file offset - the info can be saved to NV */ |
| typedef struct |
| { |
| char path[BTA_FS_CO_PATH_LEN + 1]; /* the "current path". path[0]==0-> root */ |
| char file[BTA_FS_CO_PATH_LEN + 1]; /* file[0] !=0 on resume -> the previous suspended session had opened files */ |
| int oflags; /* the flag to open the file */ |
| BD_ADDR bd_addr; |
| UINT8 sess_info[OBX_SESSION_INFO_SIZE]; |
| UINT32 offset; /* last file offset */ |
| UINT32 timeout; /* the timeout value on suspend */ |
| time_t suspend_time; /* the time of suspend */ |
| UINT16 nbytes; /* number of bytes for last read/write */ |
| UINT8 ssn; |
| UINT8 info; /* info for BTA on the client side */ |
| UINT8 app_id; |
| tBTA_FS_CO_SESS_ST sess_st; |
| } tBTA_FS_CO_SESSION; |
| |
| /***************************************************************************** |
| ** Function Declarations |
| *****************************************************************************/ |
| /************************** |
| ** Common Functions |
| ***************************/ |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_init |
| ** |
| ** Description This function is executed as a part of the start up sequence |
| ** to make sure the control block is initialized. |
| ** |
| ** Parameters void. |
| ** |
| ** Returns void |
| ** |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_init(void); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_open |
| ** |
| ** Description This function is executed by BTA when a file is opened. |
| ** The phone uses this function to open |
| ** a file for reading or writing. |
| ** |
| ** Parameters p_path - Fully qualified path and file name. |
| ** oflags - permissions and mode (see constants above) |
| ** size - size of file to put (0 if unavailable or not applicable) |
| ** evt - event that must be passed into the call-in function. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| ** Note: Upon completion of the request, a file descriptor (int), |
| ** if successful, and an error code (tBTA_FS_CO_STATUS) |
| ** are returned in the call-in function, bta_fs_ci_open(). |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_open(const char *p_path, int oflags, UINT32 size, |
| UINT16 evt, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_session_info |
| ** |
| ** Description This function is executed by BTA when a reliable session is |
| ** established (p_sess_info != NULL) or ended (p_sess_info == NULL). |
| ** |
| ** Parameters bd_addr - the peer address |
| ** p_sess_info - the session ID and related information. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_session_info(BD_ADDR bd_addr, UINT8 *p_sess_info, UINT8 ssn, |
| tBTA_FS_CO_SESS_ST new_st, char *p_path, UINT8 *p_info, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_resume_op |
| ** |
| ** Description This function is executed by BTA when a reliable session is |
| ** resumed and there was an interrupted operation. |
| ** |
| ** Parameters offset - the session ID and related information. |
| ** evt - event that must be passed into the call-in function. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_resume_op(UINT32 offset, UINT16 evt, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_suspend |
| ** |
| ** Description This function is executed by BTA when a reliable session is |
| ** suspended. |
| ** |
| ** Parameters bd_addr - the peer address |
| ** ssn - the session sequence number. |
| ** info - the BTA specific information (like last active operation). |
| ** p_offset- the location to receive object offset of the suspended session |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_suspend(BD_ADDR bd_addr, UINT8 *p_sess_info, UINT8 ssn, |
| UINT32 *p_timeout, UINT32 *p_offset, UINT8 info, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_resume |
| ** |
| ** Description This function is executed by BTA when resuming a session. |
| ** This is used to retrieve the session ID and related information |
| ** |
| ** Parameters evt - event that must be passed into the call-in function. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| ** Note: Upon completion of the request, the related session information, |
| ** if successful, and an error code (tBTA_FS_CO_STATUS) |
| ** are returned in the call-in function, bta_fs_ci_resume(). |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_resume(UINT16 evt, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_sess_ssn |
| ** |
| ** Description This function is executed by BTA when resuming a session. |
| ** This is used to inform call-out module if the ssn/file offset |
| ** needs to be adjusted. |
| ** |
| ** Parameters ssn - the session sequence number of the first request |
| ** after resume. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_sess_ssn(int fd, UINT8 ssn, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_setdir |
| ** |
| ** Description This function is executed by BTA when the server changes the |
| ** local path |
| ** |
| ** Parameters p_path - the new path. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_setdir(const char *p_path, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_close |
| ** |
| ** Description This function is called by BTA when a connection to a |
| ** client is closed. |
| ** |
| ** Parameters fd - file descriptor of file to close. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful], |
| ** [BTA_FS_CO_FAIL if failed ] |
| ** |
| *******************************************************************************/ |
| BTA_API extern tBTA_FS_CO_STATUS bta_fs_co_close(int fd, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_read |
| ** |
| ** Description This function is called by BTA to read in data from the |
| ** previously opened file on the phone. |
| ** |
| ** Parameters fd - file descriptor of file to read from. |
| ** p_buf - buffer to read the data into. |
| ** nbytes - number of bytes to read into the buffer. |
| ** evt - event that must be passed into the call-in function. |
| ** ssn - session sequence number. Ignored, if bta_fs_co_open |
| ** was not called with BTA_FS_CO_RELIABLE. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| ** Note: Upon completion of the request, bta_fs_ci_read() is |
| ** called with the buffer of data, along with the number |
| ** of bytes read into the buffer, and a status. The |
| ** call-in function should only be called when ALL requested |
| ** bytes have been read, the end of file has been detected, |
| ** or an error has occurred. |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_read(int fd, UINT8 *p_buf, UINT16 nbytes, UINT16 evt, |
| UINT8 ssn, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_write |
| ** |
| ** Description This function is called by io to send file data to the |
| ** phone. |
| ** |
| ** Parameters fd - file descriptor of file to write to. |
| ** p_buf - buffer to read the data from. |
| ** nbytes - number of bytes to write out to the file. |
| ** evt - event that must be passed into the call-in function. |
| ** ssn - session sequence number. Ignored, if bta_fs_co_open |
| ** was not called with BTA_FS_CO_RELIABLE. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| ** Note: Upon completion of the request, bta_fs_ci_write() is |
| ** called with the file descriptor and the status. The |
| ** call-in function should only be called when ALL requested |
| ** bytes have been written, or an error has been detected, |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_write(int fd, const UINT8 *p_buf, UINT16 nbytes, UINT16 evt, |
| UINT8 ssn, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_seek |
| ** |
| ** Description This function is called by io to move the file pointer |
| ** of a previously opened file to the specified location for |
| ** the next read or write operation. |
| ** |
| ** Parameters fd - file descriptor of file. |
| ** offset - Number of bytes from origin. |
| ** origin - Initial position: BTA_FS_SEEK_SET, BTA_FS_SEEK_CUR, |
| ** or BTA_FS_SEEK_END. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_seek (int fd, INT32 offset, INT16 origin, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_access |
| ** |
| ** Description This function is called to check the existence of a file or |
| ** directory. |
| ** |
| ** Parameters p_path - (input) file or directory to access (fully qualified path). |
| ** mode - (input) [BTA_FS_ACC_EXIST, BTA_FS_ACC_READ, or BTA_FS_ACC_RDWR] |
| ** p_is_dir - (output) returns TRUE if p_path specifies a directory. |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if it exists] |
| ** [BTA_FS_CO_EACCES if permissions are wrong] |
| ** [BTA_FS_CO_FAIL if it does not exist] |
| ** |
| *******************************************************************************/ |
| BTA_API extern tBTA_FS_CO_STATUS bta_fs_co_access(const char *p_path, int mode, |
| BOOLEAN *p_is_dir, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_mkdir |
| ** |
| ** Description This function is called to create a directory with |
| ** the pathname given by path. The pathname is a null terminated |
| ** string. All components of the path must already exist. |
| ** |
| ** Parameters p_path - (input) name of directory to create (fully qualified path). |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful] |
| ** [BTA_FS_CO_FAIL if unsuccessful] |
| ** |
| *******************************************************************************/ |
| BTA_API extern tBTA_FS_CO_STATUS bta_fs_co_mkdir(const char *p_path, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_rmdir |
| ** |
| ** Description This function is called to remove a directory whose |
| ** name is given by path. The directory must be empty. |
| ** |
| ** Parameters p_path - (input) name of directory to remove (fully qualified path). |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful] |
| ** [BTA_FS_CO_EACCES if read-only] |
| ** [BTA_FS_CO_ENOTEMPTY if directory is not empty] |
| ** [BTA_FS_CO_FAIL otherwise] |
| ** |
| *******************************************************************************/ |
| BTA_API extern tBTA_FS_CO_STATUS bta_fs_co_rmdir(const char *p_path, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_unlink |
| ** |
| ** Description This function is called by to remove a file whose name |
| ** is given by p_path. |
| ** |
| ** Parameters p_path - (input) name of file to remove (fully qualified path). |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful] |
| ** [BTA_FS_CO_EACCES if read-only] |
| ** [BTA_FS_CO_FAIL otherwise] |
| ** |
| *******************************************************************************/ |
| BTA_API extern tBTA_FS_CO_STATUS bta_fs_co_unlink(const char *p_path, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_getdirentry |
| ** |
| ** Description This function is called to retrieve a directory entry for the |
| ** specified path. The first/next directory should be filled |
| ** into the location specified by p_entry. |
| ** |
| ** Parameters p_path - directory to search (Fully qualified path) |
| ** first_item - TRUE if first search, FALSE if next search |
| ** (p_cur contains previous) |
| ** p_entry (input/output) - Points to last entry data (valid when |
| ** first_item is FALSE) |
| ** evt - event that must be passed into the call-in function. |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| ** Note: Upon completion of the request, the status is passed |
| ** in the bta_fs_ci_direntry() call-in function. |
| ** BTA_FS_CO_OK is returned when p_entry is valid, |
| ** BTA_FS_CO_EODIR is returned when no more entries [finished] |
| ** BTA_FS_CO_FAIL is returned if an error occurred |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_getdirentry(const char *p_path, BOOLEAN first_item, |
| tBTA_FS_DIRENTRY *p_entry, UINT16 evt, |
| UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_copy |
| ** |
| ** Description This function is called to copy a file/directory whose |
| ** name is given by p_src_path to p_dest_path. |
| ** |
| ** Parameters p_src_path - (input) name of file/directory to be copied (fully qualified path). |
| ** p_dest_path - (input) new name of file/directory(fully qualified path). |
| ** p_perms - the permission of the new object. |
| ** evt - event that must be passed into the call-in function. |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful] |
| ** [BTA_FS_CO_EIS_DIR if p_src_path is a folder] |
| ** [BTA_FS_CO_EACCES if p_dest_path already exists or could not be created (invalid path); |
| ** or p_src_path is a directory and p_dest_path specifies a different path. ] |
| ** [BTA_FS_CO_FAIL otherwise] |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_copy(const char *p_src_path, const char *p_dest_path, UINT8 *p_perms, UINT16 evt, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_rename |
| ** |
| ** Description This function is called to move a file/directory whose |
| ** name is given by p_src_path to p_dest_path. |
| ** |
| ** Parameters p_src_path - (input) name of file/directory to be moved (fully qualified path). |
| ** p_dest_path - (input) new name of file/directory(fully qualified path). |
| ** p_perms - the permission of the new object. |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful] |
| ** [BTA_FS_CO_EACCES if p_dest_path already exists or could not be created (invalid path); |
| ** or p_src_path is a directory and p_dest_path specifies a different path. ] |
| ** [BTA_FS_CO_FAIL otherwise] |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_rename(const char *p_src_path, const char *p_dest_path, UINT8 *p_perms, UINT16 evt, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_set_perms |
| ** |
| ** Description This function is called to set the permission a file/directory |
| ** with name as p_src_path. |
| ** |
| ** Parameters p_src_path - (input) name of file/directory to set permission (fully qualified path). |
| ** p_perms - the permission . |
| ** app_id - (input) application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns (tBTA_FS_CO_STATUS) status of the call. |
| ** [BTA_FS_CO_OK if successful] |
| ** [BTA_FS_CO_EACCES if p_dest_path already exists or could not be created (invalid path); |
| ** or p_src_path is a directory and p_dest_path specifies a different path. ] |
| ** [BTA_FS_CO_FAIL otherwise] |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_set_perms(const char *p_src_path, UINT8 *p_perms, UINT16 evt, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_sess_fopen |
| ** |
| ** Description This function is called by bta_fs_co_open to keep track of |
| ** the opened file (for reliable session suspend/resume.) |
| ** |
| ** Parameters p_path - Fully qualified path and file name. |
| ** oflags - permissions and mode (see constants above) |
| ** app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_sess_fopen(const char *p_path, int oflags, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_sess_fclose |
| ** |
| ** Description This function is called by bta_fs_co_close |
| ** |
| ** Parameters app_id - application ID specified in the enable functions. |
| ** It can be used to identify which profile is the caller |
| ** of the call-out function. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_sess_fclose(UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_sess_offset |
| ** |
| ** Description This function is called by bta_fs_co_write to keep track of |
| ** the last file offset (Only the receiving side needs to keep |
| ** track of the file offset) |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_sess_offset(UINT8 ssn, INT32 pos, UINT16 nbytes, UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_suspended_addr |
| ** |
| ** Description find the peer address of the suspended session control block |
| ** for the given an app_id. |
| ** |
| ** Returns the control block found. |
| ** |
| *******************************************************************************/ |
| BTA_API extern UINT8 *bta_fs_co_suspended_addr(UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_num_suspended_session |
| ** |
| ** Description find the number of suspended session control blocks for the |
| ** given an app_id. |
| ** |
| ** Returns the number of control blocks found. |
| ** |
| *******************************************************************************/ |
| BTA_API extern UINT8 bta_fs_co_num_suspended_session(UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_get_active_session |
| ** |
| ** Description find the active session control block for the given an app_id. |
| ** |
| ** Returns the control block found. |
| ** |
| *******************************************************************************/ |
| BTA_API extern tBTA_FS_CO_SESSION *bta_fs_co_get_active_session(UINT8 app_id); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_co_init_db |
| ** |
| ** Description Initialize the session control blocks for platform. |
| ** |
| ** Returns void |
| ** |
| *******************************************************************************/ |
| BTA_API extern void bta_fs_co_init_db (tBTA_FS_CO_SESSION *p_first); |
| |
| /******************************************************************************* |
| ** |
| ** Function bta_fs_convert_oflags |
| ** |
| ** Description This function converts the open flags from BTA into MFS. |
| ** |
| ** Returns BTA FS status value. |
| ** |
| *******************************************************************************/ |
| BTA_API extern int bta_fs_convert_bta_oflags(int bta_oflags); |
| |
| #endif /* BTA_FS_CO_H */ |