[RTL][NTDLL]
[reactos.git] / reactos / drivers / filesystems / udfs / Include / udf_lib_common.h
1 ////////////////////////////////////////////////////////////////////
2 // Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3 // All rights reserved
4 // This file was released under the GPLv2 on June 2015.
5 ////////////////////////////////////////////////////////////////////
6
7 #ifndef __UDF_LIB_COMMON__H__
8 #define __UDF_LIB_COMMON__H__
9
10 #ifndef WITHOUT_FORMATTER
11 #include "udferr_usr.h"
12 #endif
13
14 typedef LONG UDF_STATUS;
15
16 #define UDF_SUCCESS(x) ( (UDF_STATUS)(x)>=0 )
17
18 typedef UDF_STATUS (*PREAD_FUNCTION)(
19 PVOID lpParameter,
20 PVOID lpBuffer,
21 ULONG nLength,
22 LONGLONG liOffset,
23 PULONG lpNumberOfBytesRead
24 );
25
26 typedef UDF_STATUS (*PWRITE_FUNCTION)(
27 PVOID lpParameter,
28 PVOID lpBuffer,
29 ULONG nLength,
30 LONGLONG liOffset,
31 PULONG lpNumberOfBytesRead
32 );
33
34 typedef UDF_STATUS (*PIOCTL_FUNCTION)(
35 PVOID lpParameter,
36 DWORD dwIoControlCode,
37 LPVOID lpInBuffer,
38 DWORD nInBufferSize,
39 LPVOID lpOutBuffer,
40 DWORD nOutBufferSize,
41 LPDWORD lpBytesReturned
42 );
43
44 // For formatter
45
46 typedef UDF_STATUS (*PREOPEN_FUNCTION)(
47 PVOID* lpParameter
48 );
49
50 typedef UDF_STATUS (*PGETSIZE_FUNCTION)(
51 PVOID lpParameter,
52 __int64* size,
53 ULONG* block_size
54 );
55
56 typedef UDF_STATUS (*PFLUSH_FUNCTION)(
57 PVOID lpParameter
58 );
59
60 #endif //__UDF_LIB_COMMON__H__