Add initial visual studio project files and fix the win32 build
Win32 has been rotting for a while. This patch adds vs17 build files as well as fixing up all build errors that have accumulated. There are still build warnings but those can be addressed in a followup patch. Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
16
configure.ac
16
configure.ac
@@ -70,10 +70,26 @@ if test x"$libiscsi_cv_NEED_SYS_FILIO_H" = x"yes"; then
|
|||||||
AC_DEFINE(NEED_SYS_FILIO_H,1,[Whether we need sys/filio.h])
|
AC_DEFINE(NEED_SYS_FILIO_H,1,[Whether we need sys/filio.h])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# check for sys/socket.h
|
||||||
|
dnl Check for sys/socket.h
|
||||||
|
AC_CHECK_HEADERS([sys/socket.h])
|
||||||
|
|
||||||
|
# check for netinet/tcp.h
|
||||||
|
dnl Check for netinet/tcp.h
|
||||||
|
AC_CHECK_HEADERS([netinet/tcp.h])
|
||||||
|
|
||||||
|
# check for netinet/in.h
|
||||||
|
dnl Check for netinet/in.h
|
||||||
|
AC_CHECK_HEADERS([netinet/in.h])
|
||||||
|
|
||||||
# check for arpa/inet.h
|
# check for arpa/inet.h
|
||||||
dnl Check for arpa/inet.h
|
dnl Check for arpa/inet.h
|
||||||
AC_CHECK_HEADERS([arpa/inet.h])
|
AC_CHECK_HEADERS([arpa/inet.h])
|
||||||
|
|
||||||
|
# check for sys/uio.h
|
||||||
|
dnl Check for sys/uio.h
|
||||||
|
AC_CHECK_HEADERS([sys/uio.h])
|
||||||
|
|
||||||
# check for poll.h
|
# check for poll.h
|
||||||
dnl Check for poll.h
|
dnl Check for poll.h
|
||||||
AC_CHECK_HEADERS([poll.h])
|
AC_CHECK_HEADERS([poll.h])
|
||||||
|
|||||||
@@ -40,9 +40,6 @@ extern "C" {
|
|||||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
|
|
||||||
#define ISCSI_RAW_HEADER_SIZE 48
|
#define ISCSI_RAW_HEADER_SIZE 48
|
||||||
#define ISCSI_DIGEST_SIZE 4
|
#define ISCSI_DIGEST_SIZE 4
|
||||||
|
|
||||||
@@ -68,12 +65,6 @@ void iscsi_free_iscsi_in_pdu(struct iscsi_context *iscsi, struct iscsi_in_pdu *i
|
|||||||
/* max length of chap challange */
|
/* max length of chap challange */
|
||||||
#define MAX_CHAP_C_LENGTH 2048
|
#define MAX_CHAP_C_LENGTH 2048
|
||||||
|
|
||||||
union socket_address {
|
|
||||||
struct sockaddr_in sin;
|
|
||||||
struct sockaddr_in6 sin6;
|
|
||||||
struct sockaddr sa;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct iscsi_context {
|
struct iscsi_context {
|
||||||
struct iscsi_transport *drv;
|
struct iscsi_transport *drv;
|
||||||
void *opaque;
|
void *opaque;
|
||||||
@@ -394,6 +385,8 @@ int iscsi_service_reconnect_if_loggedin(struct iscsi_context *iscsi);
|
|||||||
|
|
||||||
void iscsi_dump_pdu_header(struct iscsi_context *iscsi, unsigned char *data);
|
void iscsi_dump_pdu_header(struct iscsi_context *iscsi, unsigned char *data);
|
||||||
|
|
||||||
|
union socket_address;
|
||||||
|
|
||||||
typedef struct iscsi_transport {
|
typedef struct iscsi_transport {
|
||||||
int (*connect)(struct iscsi_context *iscsi, union socket_address *sa, int ai_family);
|
int (*connect)(struct iscsi_context *iscsi, union socket_address *sa, int ai_family);
|
||||||
int (*queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu);
|
int (*queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu);
|
||||||
|
|||||||
@@ -21,6 +21,14 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETINET_IN_H
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -34,6 +34,13 @@
|
|||||||
|
|
||||||
#ifdef __linux
|
#ifdef __linux
|
||||||
|
|
||||||
|
/* MUST keep in sync with socket.c */
|
||||||
|
union socket_address {
|
||||||
|
struct sockaddr_in sin;
|
||||||
|
struct sockaddr_in6 sin6;
|
||||||
|
struct sockaddr sa;
|
||||||
|
};
|
||||||
|
|
||||||
static int cq_handle(struct iser_conn *iser_conn);
|
static int cq_handle(struct iser_conn *iser_conn);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
10
lib/pdu.c
10
lib/pdu.c
@@ -27,8 +27,17 @@
|
|||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_INTTYPES_H
|
||||||
|
#include <inttypes.h>
|
||||||
|
#else
|
||||||
|
#define PRIu64 "llu"
|
||||||
|
#define PRIx32 "x"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#include "win32/win32_compat.h"
|
||||||
#else
|
#else
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -36,7 +45,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <inttypes.h>
|
|
||||||
#include "iscsi.h"
|
#include "iscsi.h"
|
||||||
#include "iscsi-private.h"
|
#include "iscsi-private.h"
|
||||||
#include "scsi-lowlevel.h"
|
#include "scsi-lowlevel.h"
|
||||||
|
|||||||
@@ -45,7 +45,10 @@
|
|||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|||||||
30
lib/socket.c
30
lib/socket.c
@@ -39,16 +39,17 @@
|
|||||||
#include "aros/aros_compat.h"
|
#include "aros/aros_compat.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
#include "win32/win32_compat.h"
|
#include "win32/win32_compat.h"
|
||||||
#define ioctl ioctlsocket
|
|
||||||
#define close closesocket
|
|
||||||
#else
|
#else
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
@@ -58,7 +59,10 @@
|
|||||||
#include <sys/filio.h>
|
#include <sys/filio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_UIO_H
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -74,6 +78,13 @@
|
|||||||
static uint32_t iface_rr = 0;
|
static uint32_t iface_rr = 0;
|
||||||
struct iscsi_transport;
|
struct iscsi_transport;
|
||||||
|
|
||||||
|
/* MUST keep in sync with iser.c */
|
||||||
|
union socket_address {
|
||||||
|
struct sockaddr_in sin;
|
||||||
|
struct sockaddr_in6 sin6;
|
||||||
|
struct sockaddr sa;
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu)
|
iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu)
|
||||||
{
|
{
|
||||||
@@ -1087,6 +1098,18 @@ void iscsi_set_bind_interfaces(struct iscsi_context *iscsi, char * interfaces _U
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
static iscsi_transport iscsi_transport_tcp = {
|
||||||
|
iscsi_tcp_connect,
|
||||||
|
iscsi_tcp_queue_pdu,
|
||||||
|
iscsi_tcp_new_pdu,
|
||||||
|
iscsi_tcp_disconnect,
|
||||||
|
iscsi_tcp_free_pdu,
|
||||||
|
iscsi_tcp_service,
|
||||||
|
iscsi_tcp_get_fd,
|
||||||
|
iscsi_tcp_which_events,
|
||||||
|
};
|
||||||
|
#else
|
||||||
static iscsi_transport iscsi_transport_tcp = {
|
static iscsi_transport iscsi_transport_tcp = {
|
||||||
.connect = iscsi_tcp_connect,
|
.connect = iscsi_tcp_connect,
|
||||||
.queue_pdu = iscsi_tcp_queue_pdu,
|
.queue_pdu = iscsi_tcp_queue_pdu,
|
||||||
@@ -1097,6 +1120,7 @@ static iscsi_transport iscsi_transport_tcp = {
|
|||||||
.get_fd = iscsi_tcp_get_fd,
|
.get_fd = iscsi_tcp_get_fd,
|
||||||
.which_events = iscsi_tcp_which_events,
|
.which_events = iscsi_tcp_which_events,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
void iscsi_init_tcp_transport(struct iscsi_context *iscsi)
|
void iscsi_init_tcp_transport(struct iscsi_context *iscsi)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,11 +32,14 @@
|
|||||||
#include "win32/win32_compat.h"
|
#include "win32/win32_compat.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include "iscsi.h"
|
#include "iscsi.h"
|
||||||
#include "iscsi-private.h"
|
#include "iscsi-private.h"
|
||||||
#include "scsi-lowlevel.h"
|
#include "scsi-lowlevel.h"
|
||||||
|
|||||||
26
win32/libiscsi/libiscsi.sln
Normal file
26
win32/libiscsi/libiscsi.sln
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual C++ Express 2010
|
||||||
|
Project("{07C74339-C53E-4C5C-B9A5-2AA95ED03B2A}") = "libiscsi", "libiscsi.vcxproj", "{A3B13826-6DEF-4C25-A790-A16B37804064}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{A3B13826-6DEF-4C25-A790-A16B37804064}.Release|x64.Build.0 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
218
win32/libiscsi/libiscsi.vcxproj
Normal file
218
win32/libiscsi/libiscsi.vcxproj
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{7CAB9B67-6AA9-497F-A900-20D9D05049F5}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>libiscsi</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<LibraryPath>$(LibraryPath)</LibraryPath>
|
||||||
|
<ExecutablePath>$(ExecutablePath)</ExecutablePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<LibraryPath>$(LibraryPath)</LibraryPath>
|
||||||
|
<ExecutablePath>$(ExecutablePath)</ExecutablePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<LibraryPath>$(LibraryPath)</LibraryPath>
|
||||||
|
<ExecutablePath>$(ExecutablePath)</ExecutablePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<LibraryPath>$(LibraryPath)</LibraryPath>
|
||||||
|
<ExecutablePath>$(ExecutablePath)</ExecutablePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_U_=;_USE_32BIT_TIME_T;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\..\include;..\..\.;..\..\win32;..\..\lib</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ModuleDefinitionFile>..\..\lib\libiscsi.def</ModuleDefinitionFile>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<IgnoreSpecificDefaultLibraries>MSVCRT</IgnoreSpecificDefaultLibraries>
|
||||||
|
</Link>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
</PreBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_U_=;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\..\include;..\..\.;..\..\win32;..\..\lib</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ModuleDefinitionFile>..\..\lib\libiscsi.def</ModuleDefinitionFile>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<IgnoreSpecificDefaultLibraries>MSVCRT</IgnoreSpecificDefaultLibraries>
|
||||||
|
</Link>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
</PreBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_U_=;_USE_32BIT_TIME_T;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\..\include;..\..\.;..\..\win32;..\..\lib</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<ModuleDefinitionFile>..\..\lib\libiscsi.def</ModuleDefinitionFile>
|
||||||
|
</Link>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
</PreBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_U_=;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\..\include;..\..\.;..\..\win32;..\..\lib</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<ModuleDefinitionFile>..\..\lib\libiscsi.def</ModuleDefinitionFile>
|
||||||
|
</Link>
|
||||||
|
<PreBuildEvent>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
</PreBuildEvent>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\lib\connect.c" />
|
||||||
|
<ClCompile Include="..\..\lib\crc32c.c" />
|
||||||
|
<ClCompile Include="..\..\lib\discovery.c" />
|
||||||
|
<ClCompile Include="..\..\lib\init.c" />
|
||||||
|
<ClCompile Include="..\..\lib\iscsi-command.c" />
|
||||||
|
<ClCompile Include="..\..\lib\logging.c" />
|
||||||
|
<ClCompile Include="..\..\lib\login.c" />
|
||||||
|
<ClCompile Include="..\..\lib\md5.c" />
|
||||||
|
<ClCompile Include="..\..\lib\nop.c" />
|
||||||
|
<ClCompile Include="..\..\lib\pdu.c" />
|
||||||
|
<ClCompile Include="..\..\lib\scsi-lowlevel.c" />
|
||||||
|
<ClCompile Include="..\..\lib\socket.c" />
|
||||||
|
<ClCompile Include="..\..\lib\sync.c" />
|
||||||
|
<ClCompile Include="..\..\lib\task_mgmt.c" />
|
||||||
|
<ClCompile Include="..\win32_compat.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\include\iscsi.h" />
|
||||||
|
<ClInclude Include="..\..\include\iscsi-private.h" />
|
||||||
|
<ClInclude Include="..\..\include\md5.h" />
|
||||||
|
<ClInclude Include="..\..\include\scsi-lowlevel.h" />
|
||||||
|
<ClInclude Include="..\..\include\slist.h" />
|
||||||
|
<ClInclude Include="..\win32_compat.h" />
|
||||||
|
<ClInclude Include="resource.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\lib\libiscsi.def" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="version.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
29
win32/libiscsi/libiscsi.vcxproj.filters
Normal file
29
win32/libiscsi/libiscsi.vcxproj.filters
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{38246570-1DA0-489E-920A-20A22AAAB787}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{7F9950EA-C34C-4898-8D50-DF2069176D4B}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\lib\*.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\include\*.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\lib\libiscsi.def" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="version.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
107
win32/libiscsi/version.rc
Normal file
107
win32/libiscsi/version.rc
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
// Microsoft Visual C++ generated resource script.
|
||||||
|
//
|
||||||
|
#ifdef APSTUDIO_INVOKED
|
||||||
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||||
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
|
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||||
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define APSTUDIO_READONLY_SYMBOLS
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Generated from the TEXTINCLUDE 2 resource.
|
||||||
|
//
|
||||||
|
#include "afxres.h"
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Deutsch (Deutschland) resources
|
||||||
|
|
||||||
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
|
||||||
|
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
|
||||||
|
|
||||||
|
#ifdef APSTUDIO_INVOKED
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// TEXTINCLUDE
|
||||||
|
//
|
||||||
|
|
||||||
|
1 TEXTINCLUDE
|
||||||
|
BEGIN
|
||||||
|
"resource1.h\0"
|
||||||
|
END
|
||||||
|
|
||||||
|
2 TEXTINCLUDE
|
||||||
|
BEGIN
|
||||||
|
"#include ""afxres.h""\r\n"
|
||||||
|
"\0"
|
||||||
|
END
|
||||||
|
|
||||||
|
3 TEXTINCLUDE
|
||||||
|
BEGIN
|
||||||
|
"\r\n"
|
||||||
|
"\0"
|
||||||
|
END
|
||||||
|
|
||||||
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Version
|
||||||
|
//
|
||||||
|
|
||||||
|
VS_VERSION_INFO VERSIONINFO
|
||||||
|
FILEVERSION 1,18,0,0
|
||||||
|
PRODUCTVERSION 1,18,0,0
|
||||||
|
FILEFLAGSMASK 0x3fL
|
||||||
|
#ifdef _DEBUG
|
||||||
|
FILEFLAGS 0x1L
|
||||||
|
#else
|
||||||
|
FILEFLAGS 0x0L
|
||||||
|
#endif
|
||||||
|
FILEOS 0x40004L
|
||||||
|
FILETYPE 0x2L
|
||||||
|
FILESUBTYPE 0x0L
|
||||||
|
BEGIN
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
BEGIN
|
||||||
|
BLOCK "040704b0"
|
||||||
|
BEGIN
|
||||||
|
VALUE "CompanyName", "https://github.com/sahlberg/libiscsi"
|
||||||
|
VALUE "FileDescription", "LIBISCSI is a userspace iSCSI initiator."
|
||||||
|
VALUE "FileVersion", "1.18.0.0"
|
||||||
|
VALUE "InternalName", "libiscsi.dll"
|
||||||
|
VALUE "LegalCopyright", "Copyright (C) 2017"
|
||||||
|
VALUE "OriginalFilename", "libiscsi.dll"
|
||||||
|
VALUE "ProductName", "libiscsi"
|
||||||
|
VALUE "ProductVersion", "1.18.0.0"
|
||||||
|
END
|
||||||
|
END
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Translation", 0x407, 1200
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
#endif // Deutsch (Deutschland) resources
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef APSTUDIO_INVOKED
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Generated from the TEXTINCLUDE 3 resource.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#endif // not APSTUDIO_INVOKED
|
||||||
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
rem
|
|
||||||
rem build script for win32
|
|
||||||
rem
|
|
||||||
|
|
||||||
|
|
||||||
rem
|
|
||||||
rem generate core part of library
|
|
||||||
rem
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\connect.c -Folib\connect.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\crc32c.c -Folib\crc32c.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\discovery.c -Folib\discovery.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\init.c -Folib\init.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\login.c -Folib\login.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\logging.c -Folib\logging.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\md5.c -Folib\md5.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\nop.c -Folib\nop.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\pdu.c -Folib\pdu.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\iscsi-command.c -Folib\iscsi-command.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\scsi-lowlevel.c -Folib\scsi-lowlevel.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\socket.c -Folib\socket.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\sync.c -Folib\sync.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd lib\task_mgmt.c -Folib\task_mgmt.obj
|
|
||||||
cl /I. /Iinclude -Zi -Od -c -D_U_="" -DWIN32 -D_WIN32_WINNT=0x0600 -MDd win32\win32_compat.c -Folib\win32_compat.obj
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rem
|
|
||||||
rem create a linklibrary/dll
|
|
||||||
rem
|
|
||||||
lib /out:lib\libiscsi.lib /def:lib\libiscsi.def lib\connect.obj lib\crc32c.obj lib\discovery.obj lib\init.obj lib\login.obj lib\logging.obj lib\md5.obj lib\nop.obj lib\pdu.obj lib\iscsi-command.obj lib\scsi-lowlevel.obj lib\socket.obj lib\sync.obj lib\task_mgmt.obj lib\win32_compat.obj
|
|
||||||
|
|
||||||
link /DLL /out:lib\libiscsi.dll /DEBUG /DEBUGTYPE:cv lib\libiscsi.exp lib\connect.obj lib\crc32c.obj lib\discovery.obj lib\init.obj lib\login.obj lib\logging.obj lib\md5.obj lib\nop.obj lib\pdu.obj lib\iscsi-command.obj lib\scsi-lowlevel.obj lib\socket.obj lib\sync.obj lib\task_mgmt.obj lib\win32_compat.obj ws2_32.lib kernel32.lib
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rem
|
|
||||||
rem build a test application
|
|
||||||
rem
|
|
||||||
cl /I. /Iinclude -Zi -Od -DWIN32 -D_WIN32_WINNT=0x0600 -MDd -D_U_="" examples\iscsiclient.c lib\win32_compat.obj lib\libiscsi.lib WS2_32.lib kernel32.lib mswsock.lib advapi32.lib wsock32.lib advapi32.lib
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -43,15 +43,20 @@ typedef int gid_t;
|
|||||||
typedef int socklen_t;
|
typedef int socklen_t;
|
||||||
|
|
||||||
/* Wrapper macros to call misc. functions win32 is missing */
|
/* Wrapper macros to call misc. functions win32 is missing */
|
||||||
#define writev win32_writev
|
#define close closesocket
|
||||||
#define readv win32_readv
|
#define ioctl ioctlsocket
|
||||||
|
#define readv win32_readv
|
||||||
|
#define writev win32_writev
|
||||||
#define poll(x, y, z) win32_poll(x, y, z)
|
#define poll(x, y, z) win32_poll(x, y, z)
|
||||||
#define inet_pton(x,y,z) win32_inet_pton(x,y,z)
|
#define inet_pton(x,y,z) win32_inet_pton(x,y,z)
|
||||||
#define sleep(x) Sleep(x * 1000)
|
#define sleep(x) Sleep(x * 1000)
|
||||||
|
#define snprintf sprintf_s
|
||||||
#define snprintf(a, b, c, ...) _snprintf_s(a, b, b, c, ## __VA_ARGS__)
|
#define snprintf(a, b, c, ...) _snprintf_s(a, b, b, c, ## __VA_ARGS__)
|
||||||
int win32_inet_pton(int af, const char * src, void * dst);
|
int win32_inet_pton(int af, const char * src, void * dst);
|
||||||
int win32_poll(struct pollfd *fds, unsigned int nfsd, int timeout);
|
int win32_poll(struct pollfd *fds, unsigned int nfsd, int timeout);
|
||||||
int win32_gettimeofday(struct timeval *tv, struct timezone *tz);
|
int win32_gettimeofday(struct timeval *tv, struct timezone *tz);
|
||||||
|
ssize_t win32_writev(int fd, const struct iovec *iov, int iovcnt);
|
||||||
|
ssize_t win32_readv(int fd, const struct iovec *iov, int iovcnt);
|
||||||
|
|
||||||
struct iovec {
|
struct iovec {
|
||||||
void *iov_base;
|
void *iov_base;
|
||||||
|
|||||||
Reference in New Issue
Block a user