Blame src/win32/reparse.h

Packit Service 20376f
/*
Packit Service 20376f
* Copyright (C) the libgit2 contributors. All rights reserved.
Packit Service 20376f
*
Packit Service 20376f
* This file is part of libgit2, distributed under the GNU GPL v2 with
Packit Service 20376f
* a Linking Exception. For full terms see the included COPYING file.
Packit Service 20376f
*/
Packit Service 20376f
Packit Service 20376f
#ifndef INCLUDE_git_win32_reparse_h__
Packit Service 20376f
#define INCLUDE_git_win32_reparse_h__
Packit Service 20376f
Packit Service 20376f
/* This structure is defined on MSDN at
Packit Service 20376f
* http://msdn.microsoft.com/en-us/library/windows/hardware/ff552012(v=vs.85).aspx
Packit Service 20376f
*
Packit Service 20376f
* It was formerly included in the Windows 2000 SDK and remains defined in
Packit Service 20376f
* MinGW, so we must define it with a silly name to avoid conflicting.
Packit Service 20376f
*/
Packit Service 20376f
typedef struct _GIT_REPARSE_DATA_BUFFER {
Packit Service 20376f
	ULONG  ReparseTag;
Packit Service 20376f
	USHORT ReparseDataLength;
Packit Service 20376f
	USHORT Reserved;
Packit Service 20376f
	union {
Packit Service 20376f
		struct {
Packit Service 20376f
			USHORT SubstituteNameOffset;
Packit Service 20376f
			USHORT SubstituteNameLength;
Packit Service 20376f
			USHORT PrintNameOffset;
Packit Service 20376f
			USHORT PrintNameLength;
Packit Service 20376f
			ULONG  Flags;
Packit Service 20376f
			WCHAR  PathBuffer[1];
Packit Service 20376f
		} SymbolicLinkReparseBuffer;
Packit Service 20376f
		struct {
Packit Service 20376f
			USHORT SubstituteNameOffset;
Packit Service 20376f
			USHORT SubstituteNameLength;
Packit Service 20376f
			USHORT PrintNameOffset;
Packit Service 20376f
			USHORT PrintNameLength;
Packit Service 20376f
			WCHAR  PathBuffer[1];
Packit Service 20376f
		} MountPointReparseBuffer;
Packit Service 20376f
		struct {
Packit Service 20376f
			UCHAR DataBuffer[1];
Packit Service 20376f
		} GenericReparseBuffer;
Packit Service 20376f
	};
Packit Service 20376f
} GIT_REPARSE_DATA_BUFFER;
Packit Service 20376f
Packit Service 20376f
#define REPARSE_DATA_HEADER_SIZE			8
Packit Service 20376f
#define REPARSE_DATA_MOUNTPOINT_HEADER_SIZE	8
Packit Service 20376f
#define REPARSE_DATA_UNION_SIZE				12
Packit Service 20376f
Packit Service 20376f
/* Missing in MinGW */
Packit Service 20376f
#ifndef FSCTL_GET_REPARSE_POINT
Packit Service 20376f
# define FSCTL_GET_REPARSE_POINT			0x000900a8
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
/* Missing in MinGW */
Packit Service 20376f
#ifndef FSCTL_SET_REPARSE_POINT
Packit Service 20376f
# define FSCTL_SET_REPARSE_POINT			0x000900a4
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#endif