• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __FWDLOCKFILE_H__
18 #define __FWDLOCKFILE_H__
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #include <sys/types.h>
25 
26 /**
27  * Attaches to an open Forward Lock file. The file position is assumed to be at the beginning of the
28  * file.
29  *
30  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
31  *
32  * @return A status code.
33  * @retval 0 Success.
34  * @retval -1 Failure.
35  */
36 int FwdLockFile_attach(int fileDesc);
37 
38 /**
39  * Reads the specified number of bytes from an open Forward Lock file.
40  *
41  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
42  * @param[out] pBuffer A reference to the buffer that should receive the read data.
43  * @param[in] numBytes The number of bytes to read.
44  *
45  * @return The number of bytes read.
46  * @retval -1 Failure.
47  */
48 ssize_t FwdLockFile_read(int fileDesc, void *pBuffer, size_t numBytes);
49 
50 /**
51  * Updates the file position within an open Forward Lock file.
52  *
53  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
54  * @param[in] offset The offset with which to update the file position.
55  * @param[in] whence One of SEEK_SET, SEEK_CUR, and SEEK_END.
56  *
57  * @return The new file position.
58  * @retval ((off64_t)-1) Failure.
59  */
60 off64_t FwdLockFile_lseek(int fileDesc, off64_t offset, int whence);
61 
62 /**
63  * Detaches from an open Forward Lock file.
64  *
65  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
66  *
67  * @return A status code.
68  * @retval 0 Success.
69  * @retval -1 Failure.
70  */
71 int FwdLockFile_detach(int fileDesc);
72 
73 /**
74  * Closes an open Forward Lock file.
75  *
76  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
77  *
78  * @return A status code.
79  * @retval 0 Success.
80  * @retval -1 Failure.
81  */
82 int FwdLockFile_close(int fileDesc);
83 
84 /**
85  * Checks the data integrity of an open Forward Lock file.
86  *
87  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
88  *
89  * @return A Boolean value indicating whether the integrity check was successful.
90  */
91 int FwdLockFile_CheckDataIntegrity(int fileDesc);
92 
93 /**
94  * Checks the header integrity of an open Forward Lock file.
95  *
96  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
97  *
98  * @return A Boolean value indicating whether the integrity check was successful.
99  */
100 int FwdLockFile_CheckHeaderIntegrity(int fileDesc);
101 
102 /**
103  * Checks both the data and header integrity of an open Forward Lock file.
104  *
105  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
106  *
107  * @return A Boolean value indicating whether the integrity check was successful.
108  */
109 int FwdLockFile_CheckIntegrity(int fileDesc);
110 
111 /**
112  * Returns the content type of an open Forward Lock file.
113  *
114  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
115  *
116  * @return
117  *   A reference to the content type. The reference remains valid as long as the file is kept open.
118  */
119 const char *FwdLockFile_GetContentType(int fileDesc);
120 
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 #endif // __FWDLOCKFILE_H__
126