34 #include <smmintrin.h> 48 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,
49 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,
50 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,
51 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,
52 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,
53 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,
54 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,
55 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,
56 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,
57 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,
58 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,
59 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,
60 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,
61 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,
62 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,
63 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,
64 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,
65 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,
66 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,
67 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,
68 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,
69 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,
70 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,
71 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,
72 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,
73 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,
74 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,
75 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,
76 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,
77 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,
78 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,
79 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351,
83 #define ALIGN_SIZE 0x08UL 84 #define ALIGN_MASK (ALIGN_SIZE - 1) 85 #define CALC_CRC(op, crc, type, buf, len) \ 87 for (; (len) >= sizeof (type); (len) -= (ULONG)sizeof(type), buf += sizeof (type)) { \ 88 (crc) = (uint32_t)op((crc), *(type *) (buf)); \ 94 const char*
buf = (
const char*)
input;
104 crc = _mm_crc32_u8(crc, *
buf);
110 #pragma warning(push) 111 #pragma warning(disable:4244) // _mm_crc32_u64 wants to return uint64_t(!) 112 #pragma warning(disable:4242) 145 for (
i = 0;
i < msglen;
i++) {
181 ULONG uuidlen, genlen;
271 ULONG uuidlen, genlen, paruuidlen, partransidlen;
311 if (partransidlen <
sizeof(
uint64_t))
319 bfs.
uuid = *parent_uuid;
323 parpathw,
sizeof(parpathw));
333 if (parpath.substr(parpath.length() - 1) ==
L"\\")
334 parpath = parpath.substr(0, parpath.length() - 1);
396 wstring nameu, pathlinku;
415 ULONG rdevlen, modelen;
454 bmn->
st_rdev = rdev ? *rdev : 0;
472 if (rdblen >= 0x10000)
541 wstring pathu, path_tou;
568 wstring pathu, path_linku;
587 path_linku =
utf8_to_utf16(
string(path_link, path_link_len));
671 xattrname =
string(xattrnamebuf, xattrnamelen);
692 streamname = streamname.substr(
XATTR_USER.length());
699 if (xattrdatalen > 0) {
700 if (!
WriteFile(
h, xattrdata, xattrdatalen,
nullptr,
nullptr))
716 else if (xattrname ==
EA_EA)
731 memcpy(bsxa->
data, xattrname.c_str(), xattrname.length());
732 memcpy(&bsxa->
data[xattrname.length()], xattrdata, xattrdatalen);
765 xattrname =
string(xattrnamebuf, xattrnamelen);
773 streamname = streamname.substr(
XATTR_USER.length());
799 else if (xattrname ==
EA_EA)
814 memcpy(bsxa->
data, xattrname.c_str(), xattrname.length());
882 memset(&fbi, 0,
sizeof(FILE_BASIC_INFO));
884 fbi.LastWriteTime.QuadPart = -1;
904 ULONG i, offsetlen, cloneoffsetlen, cloneuuidlen, clonetransidlen, clonelenlen;
905 wstring pathu, clonepathu, clonepar;
945 if (clonetransidlen <
sizeof(
uint64_t))
961 if (cloneoffsetlen <
sizeof(
uint64_t))
964 for (
i = 0;
i <
cache.size();
i++) {
975 bfs.
uuid = *cloneuuid;
979 cloneparw,
sizeof(cloneparw));
989 if (clonepar.substr(clonepar.length() - 1) ==
L"\\")
990 clonepar = clonepar.substr(0, clonepar.length() - 1);
992 clonepar += cloneparw;
1133 ULONG uidlen, gidlen;
1181 return (
t->seconds * 10000000) + (
t->nanoseconds / 100) + 116444736000000000;
1187 FILE_BASIC_INFO fbi;
1208 memset(&fbi, 0,
sizeof(FILE_BASIC_INFO));
1238 file = fff.cFileName;
1264 if (
cmd->length > 0)
1312 if (
cmd.length > 0) {
1550 this->
hwnd = hwndDlg;
1625 __get_cpuid(1, &cpuInfo[0], &cpuInfo[1], &cpuInfo[2], &cpuInfo[3]);
1664 tp->PrivilegeCount = 3;
1671 tp->Privileges[0].Luid = luid;
1679 tp->Privileges[1].Luid = luid;
1687 tp->Privileges[2].Luid = luid;
1723 if (
args.size() >= 2) {
1737 tp->PrivilegeCount = 3;
1744 tp->Privileges[0].Luid = luid;
1752 tp->Privileges[1].Luid = luid;
1760 tp->Privileges[2].Luid = luid;
#define IDS_RECV_MKNOD_FAILED
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
#define BTRFS_SEND_TLV_OFFSET
#define OFN_FILEMUSTEXIST
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
static PIO_STATUS_BLOCK iosb
#define BTRFS_SEND_CMD_LINK
#define IDS_RECV_CANT_FIND_PARENT_SUBVOL
#define IDS_RECV_FILE_TRUNCATED
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
NTSTATUS NTAPI NtSetInformationFile(HANDLE hFile, PIO_STATUS_BLOCK io, PVOID ptr, ULONG len, FILE_INFORMATION_CLASS FileInformationClass)
#define BTRFS_SEND_TLV_UID
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
#define IDS_RECV_GETFILESIZEEX_FAILED
#define BTRFS_SEND_TLV_GID
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
void cmd_chown(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
wstring format_ntstatus(NTSTATUS Status)
#define BTRFS_TYPE_SOCKET
void CALLBACK RecvSubvolW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow)
#define BTRFS_SEND_TLV_PATH_TO
static uint32_t crc32c_hw(const void *input, ULONG len, uint32_t crc)
#define BTRFS_SEND_TLV_DATA
#define IDS_RECV_CANCELLED
struct _REPARSE_DATA_BUFFER::@310::@312 SymbolicLinkReparseBuffer
static void delete_directory(const wstring &dir)
GLsizei const GLchar ** path
#define BTRFS_TYPE_BLOCKDEV
#define IDS_RECV_RECEIVED_SUBVOL_FAILED
#define FILE_FLAG_POSIX_SEMANTICS
BOOL WINAPI SetEndOfFile(HANDLE hFile)
#define IDS_RECV_CSUM_ERROR
void cmd_chmod(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define IDS_RECV_SUCCESS_PLURAL
struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES
#define IDS_RECV_READFILE_FAILED
#define BTRFS_SEND_CMD_SET_XATTR
#define IDS_RECV_SETINODEINFO_FAILED
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
void cmd_snapshot(HWND hwnd, btrfs_send_command *cmd, uint8_t *data, const win_handle &parent)
#define IDS_RECV_CANT_FIND_CLONE_SUBVOL
void cmd_unlink(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define IDS_OUT_OF_MEMORY
NTSYSCALLAPI NTSTATUS NTAPI NtFsControlFile(HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG FsControlCode, PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, ULONG OutputBufferLength)
#define BTRFS_SEND_TLV_XATTR_NAME
BOOL WINAPI GetVolumePathNameW(IN LPCWSTR lpszFileName, IN LPWSTR lpszVolumePathName, IN DWORD cchBufferLength)
#define BTRFS_SEND_TLV_MTIME
#define BTRFS_SEND_CMD_UPDATE_EXTENT
unsigned short int uint16_t
#define BTRFS_TYPE_CHARDEV
#define IDS_RECV_UNKNOWN_COMMAND
#define BTRFS_SEND_TLV_XATTR_DATA
int const JOCTET unsigned int datalen
void cmd_truncate(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define BTRFS_SEND_TLV_INODE
static DWORD WINAPI global_recv_thread(LPVOID lpParameter)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
static uint32_t calc_crc32c(uint32_t seed, uint8_t *msg, ULONG msglen)
#define FILE_WRITE_ATTRIBUTES
GLfloat GLfloat GLfloat GLfloat h
#define BTRFS_SEND_CMD_UTIMES
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
#define IDS_RECV_SHORT_PARAM
#define BTRFS_SEND_CMD_MKFIFO
GLenum GLuint GLenum GLsizei const GLchar * buf
#define IDC_RECV_PROGRESS
#define SE_PRIVILEGE_ENABLED
void error_message(HWND hwnd, const char *msg)
#define IDS_RECV_CREATETHREAD_FAILED
basic_ostream< _CharT, _Traits > &_STLP_CALL endl(basic_ostream< _CharT, _Traits > &__os)
#define BTRFS_SEND_TLV_TRANSID
void do_recv(const win_handle &f, uint64_t *pos, uint64_t size, const win_handle &parent)
#define FSCTL_BTRFS_CREATE_SNAPSHOT
#define IDS_RECV_UNSUPPORTED_VERSION
#define BTRFS_SEND_CMD_SUBVOL
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
#define BTRFS_SEND_TLV_CLONE_PATH
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
#define IDS_RECV_GETFILEATTRIBUTES_FAILED
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
BOOL WINAPI MoveFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName)
#define BTRFS_SEND_CMD_TRUNCATE
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
void cmd_rmdir(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define BTRFS_SEND_TLV_OTIME
#define BTRFS_TYPE_DIRECTORY
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
#define IDS_RECV_REMOVEDIRECTORY_FAILED
#define offsetof(TYPE, MEMBER)
#define BTRFS_SEND_CMD_MKSOCK
#define BTRFS_SEND_CMD_CHOWN
#define IDD_RECV_PROGRESS
void cmd_clone(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
BOOL WINAPI RemoveDirectoryW(IN LPCWSTR lpPathName)
#define IDS_RECV_BUTTON_OK
#define FILE_ATTRIBUTE_REPARSE_POINT
static __inline uint64_t unix_time_to_win(BTRFS_TIME *t)
#define FSCTL_BTRFS_CREATE_SUBVOL
#define FILE_ATTRIBUTE_DIRECTORY
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
#define IDS_RECV_SETXATTR_FAILED
#define BTRFS_SEND_TLV_SIZE
#define BTRFS_SEND_TLV_PATH_LINK
void wstring_sprintf(wstring &s, wstring fmt,...)
#define IDS_RECV_WRITEFILE_FAILED
LARGE_INTEGER SourceFileOffset
GLboolean GLboolean GLboolean b
BOOL WINAPI CreateHardLinkW(IN LPCWSTR lpFileName, IN LPCWSTR lpExistingFileName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
#define IDS_RECV_SET_REPARSE_POINT_FAILED
#define IDS_RECV_FIND_SUBVOL_FAILED
#define BTRFS_SEND_CMD_REMOVE_XATTR
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define NT_SUCCESS(StatCode)
_STLP_DECLSPEC _Stl_aligned_buffer< ostream > cerr
#define IDS_RECV_NOT_A_SEND_STREAM
#define FSCTL_BTRFS_RESERVE_SUBVOL
#define BTRFS_SEND_TLV_CLONE_LENGTH
wstring utf8_to_utf16(const string_view &utf8)
#define FILE_ATTRIBUTE_READONLY
const string EA_DOSATTRIB
void cmd_mkfile(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define INVALID_FILE_ATTRIBUTES
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define IDS_RECV_CREATE_SUBVOL_FAILED
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
#define IDS_RECV_DELETEFILE_FAILED
#define BTRFS_SEND_CMD_WRITE
void cmd_utimes(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define BTRFS_SEND_TLV_PATH
void Open(HWND hwnd, const wstring &file, const wstring &path, bool quiet)
#define FSCTL_BTRFS_FIND_SUBVOL
void cmd_removexattr(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
static INT_PTR CALLBACK stub_RecvProgressDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define BTRFS_SEND_TLV_RDEV
#define FILE_SHARE_DELETE
#define BTRFS_SEND_CMD_CLONE
#define IDS_RECV_SETFILEPOINTER_FAILED
struct tagOFNW OPENFILENAMEW
#define BTRFS_SEND_CMD_MKNOD
#define FSCTL_BTRFS_MKNOD
#define BTRFS_SEND_TLV_CTIME
void cmd_link(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
void CALLBACK RecvSubvolGUIW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow)
void cmd_subvol(HWND hwnd, btrfs_send_command *cmd, uint8_t *data, const win_handle &parent)
#define FILE_ADD_SUBDIRECTORY
#define memcpy(s1, s2, n)
format_message(j_common_ptr cinfo, char *buffer)
#define GetCurrentProcess()
#define BTRFS_SEND_CMD_END
#define FSCTL_BTRFS_SET_INODE_INFO
#define BTRFS_SEND_CMD_CHMOD
#define IDS_RECV_MISSING_PARAM
#define SYMLINK_FLAG_RELATIVE
#define BTRFS_SEND_CMD_RENAME
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
void cmd_setxattr(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
INT_PTR CALLBACK RecvProgressDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define BTRFS_SEND_TLV_CLONE_UUID
#define IDS_RECV_CANT_CREATE_FILE
#define BTRFS_SEND_TLV_MODE
PPC_QUAL void __cpuid(int CPUInfo[], const int InfoType)
GLenum GLenum GLenum input
#define INVALID_SET_FILE_POINTER
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static float(__cdecl *square_half_float)(float x
static bool check_csum(btrfs_send_command *cmd, uint8_t *data)
#define IDS_RECV_DUPLICATE_EXTENTS_FAILED
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
void command_line_to_args(LPWSTR cmdline, vector< wstring > &args)
void cmd_rename(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define IDS_RECV_CREATE_SNAPSHOT_FAILED
#define ReadFile(a, b, c, d, e)
#define BTRFS_SEND_CMD_MKFILE
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define BTRFS_SEND_CMD_RMDIR
LARGE_INTEGER TargetFileOffset
static int load_string(HINSTANCE hModule, UINT resId, LPWSTR pwszBuffer, INT cMaxChars)
static const uint32_t crctable[]
#define crc32(crc, buf, len)
#define IDS_RECV_SETFILEATTRIBUTES_FAILED
#define IDS_RECV_CANT_OPEN_PATH
#define FSCTL_BTRFS_RECEIVED_SUBVOL
#define FILE_FLAG_BACKUP_SEMANTICS
#define IDS_RECV_MOVEFILE_FAILED
#define FSCTL_BTRFS_SET_XATTR
#define BTRFS_SEND_CMD_MKDIR
#define BTRFS_SEND_TLV_CLONE_CTRANSID
#define IDS_RECV_CANT_OPEN_FILE
#define BTRFS_SEND_CMD_SNAPSHOT
#define MAKEINTRESOURCEW(i)
#define FSCTL_SET_REPARSE_POINT
GLuint GLuint GLsizei GLenum type
#define IDS_RECV_RESERVE_SUBVOL_FAILED
#define BTRFS_SEND_TLV_UUID
#define BTRFS_SEND_CMD_UNLINK
#define IDS_RECV_SETENDOFFILE_FAILED
void add_cache_entry(BTRFS_UUID *uuid, uint64_t transid, const wstring &path)
#define TOKEN_ADJUST_PRIVILEGES
#define FILE_OPEN_REPARSE_POINT
#define IO_REPARSE_TAG_SYMLINK
INT WSAAPI recv(IN SOCKET s, OUT CHAR FAR *buf, IN INT len, IN INT flags)
void cmd_write(HWND hwnd, btrfs_send_command *cmd, uint8_t *data)
#define BTRFS_SEND_TLV_CLONE_OFFSET
#define IDS_RECV_PATH_TOO_LONG
#define BTRFS_SEND_CMD_SYMLINK
#define FSCTL_DUPLICATE_EXTENTS_TO_FILE
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
#define BTRFS_SEND_TLV_ATIME
#define IDS_RECV_CREATEHARDLINK_FAILED
bool find_tlv(uint8_t *data, ULONG datalen, uint16_t type, void **value, ULONG *len)
#define IDS_RECV_GETVOLUMEPATHNAME_FAILED
#define CALC_CRC(op, crc, type, buf, len)
GLuint const GLchar * name