dll: fuse: ENOSYS has different values on Windows vs Cygwin

This commit is contained in:
Bill Zissimopoulos 2018-07-16 09:42:15 -07:00
parent e3290a30bc
commit e4077c92e9
No known key found for this signature in database
GPG Key ID: 3D4F95D52C7B3EA3
6 changed files with 30 additions and 1 deletions

View File

@ -34,6 +34,7 @@
<ClInclude Include="..\..\inc\winfsp\winfsp.hpp" />
<ClInclude Include="..\..\src\dll\fuse3\library.h" />
<ClInclude Include="..\..\src\dll\fuse\library.h" />
<ClInclude Include="..\..\src\dll\fuse\shared.h" />
<ClInclude Include="..\..\src\dll\library.h" />
<ClInclude Include="..\..\src\shared\minimal.h" />
</ItemGroup>

View File

@ -77,6 +77,9 @@
<ClInclude Include="..\..\src\dll\fuse3\library.h">
<Filter>Source\fuse3</Filter>
</ClInclude>
<ClInclude Include="..\..\src\dll\fuse\shared.h">
<Filter>Source\fuse</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\dll\library.c">

View File

@ -383,7 +383,7 @@ static NTSTATUS fsp_fuse_svcstart(FSP_SERVICE *Service, ULONG argc, PWSTR *argv)
/* this should always fail with ENOSYS or EINVAL */
err = f->ops.readlink("/", buf, sizeof buf);
f->has_symlinks = -ENOSYS != err;
f->has_symlinks = -enosys(f->env) != err;
}
/* the FSD does not currently limit these VolumeParams fields; do so here! */

View File

@ -19,6 +19,7 @@
#define WINFSP_DLL_FUSE_LIBRARY_H_INCLUDED
#include <dll/library.h>
#include <dll/fuse/shared.h>
#include <fuse/fuse.h>
#include <fuse/fuse_opt.h>

23
src/dll/fuse/shared.h Normal file
View File

@ -0,0 +1,23 @@
/**
* @file dll/fuse/shared.h
*
* @copyright 2015-2018 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
*
* You can redistribute it and/or modify it under the terms of the GNU
* General Public License version 3 as published by the Free Software
* Foundation.
*
* Licensees holding a valid commercial license may use this file in
* accordance with the commercial license agreement provided with the
* software.
*/
#ifndef WINFSP_DLL_FUSE_SHARED_H_INCLUDED
#define WINFSP_DLL_FUSE_SHARED_H_INCLUDED
#define enosys(env) ('C' == (env)->environment ? 88 : 40)
#endif

View File

@ -19,6 +19,7 @@
#define WINFSP_DLL_FUSE3_LIBRARY_H_INCLUDED
#include <dll/library.h>
#include <dll/fuse/shared.h>
#include <fuse/fuse.h>
#undef FUSE_H_
#undef FUSE_COMMON_H_