summaryrefslogtreecommitdiffstats
path: root/drm/libdrmframework/plugins/forward-lock/internal-format/decoder/FwdLockFile.h
blob: fc64050eb5ca90bc135074fd9dedc59edc6c83c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * 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.
 */

#ifndef __FWDLOCKFILE_H__
#define __FWDLOCKFILE_H__

#ifdef __cplusplus
extern "C" {
#endif

#include <sys/types.h>

/**
 * Attaches to an open Forward Lock file. The file position is assumed to be at the beginning of the
 * file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return A status code.
 * @retval 0 Success.
 * @retval -1 Failure.
 */
int FwdLockFile_attach(int fileDesc);

/**
 * Opens a Forward Lock file for reading.
 *
 * @param[in] pFilename A reference to a filename.
 *
 * @return A file descriptor.
 * @retval -1 Failure.
 */
int FwdLockFile_open(const char *pFilename);

/**
 * Reads the specified number of bytes from an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 * @param[out] pBuffer A reference to the buffer that should receive the read data.
 * @param[in] numBytes The number of bytes to read.
 *
 * @return The number of bytes read.
 * @retval -1 Failure.
 */
ssize_t FwdLockFile_read(int fileDesc, void *pBuffer, size_t numBytes);

/**
 * Updates the file position within an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 * @param[in] offset The offset with which to update the file position.
 * @param[in] whence One of SEEK_SET, SEEK_CUR, and SEEK_END.
 *
 * @return The new file position.
 * @retval ((off64_t)-1) Failure.
 */
off64_t FwdLockFile_lseek(int fileDesc, off64_t offset, int whence);

/**
 * Detaches from an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return A status code.
 * @retval 0 Success.
 * @retval -1 Failure.
 */
int FwdLockFile_detach(int fileDesc);

/**
 * Closes an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return A status code.
 * @retval 0 Success.
 * @retval -1 Failure.
 */
int FwdLockFile_close(int fileDesc);

/**
 * Checks the data integrity of an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return A Boolean value indicating whether the integrity check was successful.
 */
int FwdLockFile_CheckDataIntegrity(int fileDesc);

/**
 * Checks the header integrity of an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return A Boolean value indicating whether the integrity check was successful.
 */
int FwdLockFile_CheckHeaderIntegrity(int fileDesc);

/**
 * Checks both the data and header integrity of an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return A Boolean value indicating whether the integrity check was successful.
 */
int FwdLockFile_CheckIntegrity(int fileDesc);

/**
 * Returns the content type of an open Forward Lock file.
 *
 * @param[in] fileDesc The file descriptor of an open Forward Lock file.
 *
 * @return
 *   A reference to the content type. The reference remains valid as long as the file is kept open.
 */
const char *FwdLockFile_GetContentType(int fileDesc);

#ifdef __cplusplus
}
#endif

#endif // __FWDLOCKFILE_H__