dnl Some autoconf.h defines we might enable later...
AC_ARG_WITH(pthreads,AS_HELP_STRING([--without-pthreads],[Disable POSIX Threads]))
AC_ARG_WITH(aio, AS_HELP_STRING([--without-aio],[Do not use POSIX AIO. Default: auto-detect]))
+AH_TEMPLATE(USE_DISKIO_AIO, [Whether POSIX AIO support is needed. Automatic])
+AH_TEMPLATE(USE_DISKIO_DISKTHREADS, [Whether pthreads support is needed. Automatic])
ENABLE_WIN32_AIOPS=0
squid_opt_use_aio=
squid_opt_use_diskthreads=
dnl Setup the module paths etc.
DISK_LIBS=
+DISK_OS_LIBS=
DISK_MODULES=
DISK_LINKOBJS=
-AH_TEMPLATE(HAVE_DISKIO_MODULE_AIO, [Whether POSIX AIO Disk I/O module is built])
-AH_TEMPLATE(HAVE_DISKIO_MODULE_BLOCKING, [Whether Blocking Disk I/O module is built])
-AH_TEMPLATE(HAVE_DISKIO_MODULE_DISKDAEMON, [Whether DiskDaemon Disk I/O module is built])
-AH_TEMPLATE(HAVE_DISKIO_MODULE_IPCIO, [Whether IpcIo Disk I/O module is built])
-AH_TEMPLATE(HAVE_DISKIO_MODULE_MMAPPED, [Whether Mmapped Disk I/O module is built])
for module in $squid_disk_module_candidates none; do
# maybe not needed
if test "x$module" = "xnone"; then
AC_MSG_ERROR(disk-io $module does not exist)
fi
case "$module" in
-
- AIO)
- dnl Check for POSIX AIO availability
- squid_opt_use_aio="yes"
- AIOLIB=
- if test "x$with_aio" != "xno"; then
- have_aio_header=no
- AC_CHECK_HEADERS(aio.h,[have_aio_header=yes])
- dnl On some systems POSIX AIO functions are in librt
- dnl On some systems POSIX AIO functions are in libaio
- AC_CHECK_LIB(rt,aio_read,[AIOLIB="-lrt"],AC_CHECK_LIB(aio,aio_read,[AIOLIB="-laio"],[]))
- dnl Enable AIO if the library and headers are found
- if test "x$AIOLIB" != "x" && test "x$have_aio_header" = "xyes"; then
- AC_MSG_NOTICE([Native POSIX AIO support detected.])
- squid_opt_use_aio="yes"
- else
- dnl Windows does things differently. We provide wrappers.
- dnl TODO: Windows really needs its own DiskIO module or its Overlaped IO
- case "$squid_host_os" in
- mingw)
- squid_opt_use_aio="yes"
- AC_MSG_NOTICE([Windows being built. Maybe-enable POSIX AIO.])
- ;;
- *)
- AC_MSG_NOTICE([Native POSIX AIO support not detected. AIO automatically disabled.])
- squid_opt_use_aio="no"
- ;;
- esac
- fi
- else
- AC_MSG_NOTICE([POSIX AIO support manually disabled.])
- squid_opt_use_aio="no"
- fi
- dnl Use the POSIX AIO pieces if we actually need them.
- if test "x$squid_opt_use_aio" = "xyes" ; then
- DISK_MODULES="$DISK_MODULES AIO"
- DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/AIO/AIODiskIOModule.o"
- AC_DEFINE([HAVE_DISKIO_MODULE_AIO],1,[POSIX AIO Disk I/O module is built])
- case "$squid_host_os" in
- mingw)
- ENABLE_WIN32_AIO=1
- AC_MSG_NOTICE([Replacing AIO DiskIO module with: Windows overlapped I/O support])
- ;;
- *)
- AC_MSG_NOTICE([Enabling AIO DiskIO module])
- ;;
- esac
- else
- AC_MSG_NOTICE([AIO DiskIO Module disabled. Missing POSIX AIO support.])
- fi
- ;;
-
- Blocking)
- AC_MSG_NOTICE([Enabling Blocking DiskIO module])
- DISK_MODULES="$DISK_MODULES Blocking"
- DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/Blocking/BlockingDiskIOModule.o"
- AC_DEFINE([HAVE_DISKIO_MODULE_BLOCKING],1,[Blocking Disk I/O module is built])
- ;;
-
DiskDaemon)
case "$squid_host_os" in
mingw)
;;
*)
AC_MSG_NOTICE([Enabling DiskDaemon DiskIO module])
+ DISK_LIBS="$DISK_LIBS libDiskDaemon.a"
DISK_MODULES="$DISK_MODULES DiskDaemon"
+ DISK_PROGRAMS="$DISK_PROGRAMS DiskIO/DiskDaemon/diskd"
DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/DiskDaemon/DiskDaemonDiskIOModule.o"
- AC_DEFINE([HAVE_DISKIO_MODULE_DISKDAEMON],1,[DiskDaemon Disk I/O module is built])
;;
esac
;;
-
DiskThreads)
squid_opt_use_diskthreads="yes"
LIBPTHREADS=
squid_opt_use_diskthreads="no"
fi
if test "x$squid_opt_use_diskthreads" = "xyes" ; then
+ AC_DEFINE(USE_DISKIO_DISKTHREADS, 1, [Whether pthreads support is needed. Automatic])
AC_MSG_NOTICE([Enabling DiskThreads DiskIO module])
+ DISK_LIBS="$DISK_LIBS libDiskThreads.a"
+ DISK_OS_LIBS="$DISK_OS_LIBS $LIBPTHREADS"
DISK_MODULES="$DISK_MODULES DiskThreads"
DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/DiskThreads/DiskThreadsDiskIOModule.o"
- AC_DEFINE([HAVE_DISKIO_MODULE_DISKTHREADS],1,[DiskThreads Disk I/O module is built])
else
+ AC_DEFINE(USE_DISKIO_DISKTHREADS, 0, [Whether pthreads support is needed. Automatic])
AC_MSG_NOTICE([Native pthreads support disabled. DiskThreads module automaticaly disabled.])
SQUID_STATE_ROLLBACK([diskthreads_state])
fi
;;
- IpcIo)
- AC_MSG_NOTICE([Enabling IpcIo DiskIO module])
- if test "x$ac_cv_search_shm_open" = "xno" ; then
- AC_MSG_ERROR([DiskIO IpcIo module requires shared memory support])
+ AIO)
+ dnl Check for POSIX AIO availability
+ squid_opt_use_aio="yes"
+ AIOLIB=
+ if test "x$with_aio" != "xno"; then
+ have_aio_header=no
+ AC_CHECK_HEADERS(aio.h,[have_aio_header=yes])
+ dnl On some systems POSIX AIO functions are in librt
+ dnl On some systems POSIX AIO functions are in libaio
+ AC_CHECK_LIB(rt,aio_read,[AIOLIB="-lrt"],AC_CHECK_LIB(aio,aio_read,[AIOLIB="-laio"],[]))
+ dnl Enable AIO if the library and headers are found
+ if test "x$AIOLIB" != "x" && test "x$have_aio_header" = "xyes"; then
+ AC_MSG_NOTICE([Native POSIX AIO support detected.])
+ squid_opt_use_aio="yes"
+ else
+ dnl Windows does things differently. We provide wrappers.
+ dnl TODO: Windows really needs its own DiskIO module or its Overlaped IO
+ case "$squid_host_os" in
+ mingw)
+ squid_opt_use_aio="yes"
+ AC_MSG_NOTICE([Windows being built. Maybe-enable POSIX AIO.])
+ ;;
+ *)
+ AC_MSG_NOTICE([Native POSIX AIO support not detected. AIO automatically disabled.])
+ squid_opt_use_aio="no"
+ ;;
+ esac
+ fi
+ else
+ AC_MSG_NOTICE([POSIX AIO support manually disabled.])
+ squid_opt_use_aio="no"
+ fi
+ dnl Use the POSIX AIO pieces if we actually need them.
+ if test "x$squid_opt_use_aio" = "xyes" ; then
+ AC_DEFINE(USE_DISKIO_AIO, 1, [Whether POSIX AIO support is needed. Automatic])
+ DISK_MODULES="$DISK_MODULES AIO"
+ DISK_LIBS="$DISK_LIBS libAIO.a"
+ DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/AIO/AIODiskIOModule.o"
+ case "$squid_host_os" in
+ mingw)
+ ENABLE_WIN32_AIO=1
+ AC_MSG_NOTICE([Replacing AIO DiskIO module with: Windows overlapped I/O support])
+ ;;
+ *)
+ AC_MSG_NOTICE([Enabling AIO DiskIO module])
+ DISK_OS_LIBS="$DISK_OS_LIBS $AIOLIB"
+ ;;
+ esac
+ else
+ AC_DEFINE(USE_DISKIO_AIO, 0, [Whether POSIX AIO support is needed. Automatic])
+ AC_MSG_NOTICE([AIO DiskIO Module disabled. Missing POSIX AIO support.])
fi
- DISK_MODULES="$DISK_MODULES IpcIo"
- DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/IpcIo/IpcIoDiskIOModule.o"
- AC_DEFINE([HAVE_DISKIO_MODULE_IPCIO],1,[IpcIo Disk I/O module is built])
;;
Mmapped)
AC_MSG_NOTICE([Mmapped DiskIO is not available on Mingw])
else
AC_MSG_NOTICE([Enabling Mmapped DiskIO module])
+ DISK_LIBS="$DISK_LIBS libMmapped.a"
DISK_MODULES="$DISK_MODULES Mmapped"
DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/Mmapped/MmappedDiskIOModule.o"
- AC_DEFINE([HAVE_DISKIO_MODULE_MMAPPED],1,[Mmapped Disk I/O module is built])
fi
;;
+ IpcIo)
+ AC_MSG_NOTICE([Enabling IpcIo DiskIO module])
+ if test "x$ac_cv_search_shm_open" = "xno" ; then
+ AC_MSG_ERROR([DiskIO IpcIo module requires shared memory support])
+ fi
+ DISK_LIBS="$DISK_LIBS libIpcIo.a"
+ DISK_MODULES="$DISK_MODULES IpcIo"
+ DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/IpcIo/IpcIoDiskIOModule.o"
+ AC_DEFINE(USE_DISKIO_IPCIO, 1, [Enable DiskIO IpcIo module.])
+ ;;
+
+ Blocking)
+ AC_MSG_NOTICE([Enabling Blocking DiskIO module])
+ DISK_LIBS="$DISK_LIBS libBlocking.a"
+ DISK_MODULES="$DISK_MODULES Blocking"
+ DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/Blocking/BlockingDiskIOModule.o"
+ ;;
+
*)
AC_MSG_NOTICE([Enabling $module DiskIO module])
- DISK_LIBS="$DISK_LIBS lib${module}.la"
+ DISK_LIBS="$DISK_LIBS lib${module}.a"
DISK_MODULES="$DISK_MODULES ${module}"
DISK_LINKOBJS="$DISK_LINKOBJS DiskIO/${module}/${module}DiskIOModule.o"
;;
AC_MSG_NOTICE([IO Modules built: $DISK_MODULES])
AC_SUBST(DISK_MODULES)
AC_SUBST(DISK_LIBS)
+AC_SUBST(DISK_PROGRAMS)
AC_SUBST(DISK_LINKOBJS)
-AM_CONDITIONAL([ENABLE_DISKIO_AIO], [test "x$squid_disk_module_candidates_AIO" != "xno"])
-AC_SUBST(AIOLIB)
-AM_CONDITIONAL([ENABLE_WIN32_AIO], [test "x$squid_disk_module_candidates_AIO" != "xno" -a "x$ENABLE_WIN32_AIO" = "x1"])
-AM_CONDITIONAL([ENABLE_DISKIO_BLOCKING], [test "x$squid_disk_module_candidates_Blocking" != "xno"])
-AM_CONDITIONAL([ENABLE_DISKIO_DISKDAEMON], [test "x$squid_disk_module_candidates_DiskDaemon" != "xno"])
-AM_CONDITIONAL([ENABLE_DISKIO_DISKTHREADS], [test "x$squid_disk_module_candidates_DiskThreads" != "xno"])
-AC_SUBST(LIBPTHREADS)
-AM_CONDITIONAL([ENABLE_WIN32_AIOPS], [test "x$squid_disk_module_candidates_DiskThreads" != "xno" -a "x$ENABLE_WIN32_AIOPS" = "x1"])
-AM_CONDITIONAL([ENABLE_DISKIO_IPCIO], [test "x$squid_disk_module_candidates_IpcIo" != "xno"])
-AM_CONDITIONAL([ENABLE_DISKIO_MMAPPED], [test "x$squid_disk_module_candidates_Mmapped" != "xno"])
+AC_SUBST(DISK_OS_LIBS)
+AM_CONDITIONAL([ENABLE_WIN32_AIOPS], [test "$ENABLE_WIN32_AIOPS" = "1"])
+AM_CONDITIONAL([ENABLE_WIN32_AIO], [test "$ENABLE_WIN32_AIO" = "1"])
dnl Check what Storage formats are wanted.
src/clients/Makefile
src/comm/Makefile
src/dns/Makefile
- src/DiskIO/Makefile
- src/DiskIO/AIO/Makefile
- src/DiskIO/Blocking/Makefile
- src/DiskIO/DiskDaemon/Makefile
- src/DiskIO/DiskThreads/Makefile
- src/DiskIO/IpcIo/Makefile
- src/DiskIO/Mmapped/Makefile
src/esi/Makefile
src/eui/Makefile
src/format/Makefile
*/
#include "squid.h"
-#include "Debug.h"
+#include "AIODiskFile.h"
+#include "AIODiskIOStrategy.h"
#include "disk.h"
-#include "DiskIO/AIO/AIODiskFile.h"
-#include "DiskIO/AIO/AIODiskIOStrategy.h"
#include "DiskIO/IORequestor.h"
#include "DiskIO/ReadRequest.h"
#include "DiskIO/WriteRequest.h"
#ifndef SQUID_AIODISKFILE_H
#define SQUID_AIODISKFILE_H
-#if HAVE_DISKIO_MODULE_AIO
+#if USE_DISKIO_AIO
+#include "async_io.h"
#include "cbdata.h"
-#include "DiskIO/AIO/async_io.h"
#include "DiskIO/DiskFile.h"
#include "SquidString.h"
bool error_;
};
-#endif /* HAVE_DISKIO_MODULE_AIO */
+#endif /* USE_DISKIO_AIO */
#endif /* SQUID_AIODISKFILE_H */
*/
#include "squid.h"
-#include "DiskIO/AIO/AIODiskIOModule.h"
-#include "DiskIO/AIO/AIODiskIOStrategy.h"
+#include "AIODiskIOModule.h"
+#include "AIODiskIOStrategy.h"
#include "Store.h"
AIODiskIOModule::AIODiskIOModule()
#ifndef SQUID_AIODISKIOMODULE_H
#define SQUID_AIODISKIOMODULE_H
-#if HAVE_DISKIO_MODULE_AIO
+#if USE_DISKIO_AIO
#include "DiskIO/DiskIOModule.h"
static AIODiskIOModule Instance;
};
-#endif /* HAVE_DISKIO_MODULE_AIO */
+#endif /* USE_DISKIO_AIO */
#endif /* SQUID_AIODISKIOMODULE_H */
*/
#include "squid.h"
-#include "DiskIO/AIO/AIODiskFile.h"
-#include "DiskIO/AIO/AIODiskIOStrategy.h"
+#include "AIODiskFile.h"
+#include "AIODiskIOStrategy.h"
#include "DiskIO/IORequestor.h"
#include "DiskIO/ReadRequest.h"
#include "DiskIO/WriteRequest.h"
* Please see the COPYING and CONTRIBUTORS files for details.
*/
-#ifndef SQUID_SRC_DISKIO_AIO_AIODISKIOSTRATEGY_H
-#define SQUID_SRC_DISKIO_AIO_AIODISKIOSTRATEGY_H
+#ifndef SQUID_AIODISKIOSTRATEGY_H
+#define SQUID_AIODISKIOSTRATEGY_H
-#if HAVE_DISKIO_MODULE_AIO
+#if USE_DISKIO_AIO
-#include "DiskIO/AIO/async_io.h"
+#include "async_io.h"
#include "DiskIO/DiskIOStrategy.h"
class AIODiskIOStrategy : public DiskIOStrategy
int findSlot();
};
-#endif /* HAVE_DISKIO_MODULE_AIO */
-#endif /* SQUID_SRC_DISKIO_AIO_AIODISKIOSTRATEGY_H */
+#endif /* USE_DISKIO_AIO */
+#endif /* SQUID_AIODISKIOSTRATEGY_H */
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-noinst_LTLIBRARIES = libAIO.la
-
-libAIO_la_SOURCES = \
- async_io.h \
- AIODiskFile.cc \
- AIODiskFile.h \
- AIODiskIOModule.cc \
- AIODiskIOModule.h \
- AIODiskIOStrategy.cc \
- AIODiskIOStrategy.h
-
-if ENABLE_WIN32_AIO
-libAIO_la_SOURCES += \
- aio_win32.cc \
- aio_win32.h
-else
-EXTRA_DIST = \
- aio_win32.cc \
- aio_win32.h
-endif
-
#ifndef __WIN32_AIO_H__
#define __WIN32_AIO_H__
-#if HAVE_DISKIO_MODULE_AIO
+#if USE_DISKIO_AIO
#ifndef off64_t
typedef int64_t off64_t;
void aio_close(int);
#endif /* _SQUID_WINDOWS_ */
-#endif /* HAVE_DISKIO_MODULE_AIO */
+#endif /* USE_DISKIO_AIO */
#endif /* __WIN32_AIO_H__ */
#ifndef __ASYNC_IO_H__
#define __ASYNC_IO_H__
-#if HAVE_DISKIO_MODULE_AIO
+#if USE_DISKIO_AIO
#if _SQUID_WINDOWS_
-#include "DiskIO/AIO/aio_win32.h"
+#include "aio_win32.h"
#else
#if HAVE_AIO_H
#include <aio.h>
int aq_numpending; /* Num of pending ops */
};
-#endif /* HAVE_DISKIO_MODULE_AIO */
+#endif /* USE_DISKIO_AIO */
#endif /* __ASYNC_IO_H_ */
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-noinst_LTLIBRARIES = libBlocking.la
-
-libBlocking_la_SOURCES = \
- BlockingDiskIOModule.cc \
- BlockingDiskIOModule.h \
- BlockingFile.cc \
- BlockingFile.h \
- BlockingIOStrategy.cc \
- BlockingIOStrategy.h
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-noinst_LTLIBRARIES = libDiskDaemon.la
-libexec_PROGRAMS = diskd
-
-libDiskDaemon_la_SOURCES = \
- diomsg.h \
- DiskdAction.cc \
- DiskdAction.h \
- DiskdFile.cc \
- DiskdFile.h \
- DiskdIOStrategy.cc \
- DiskdIOStrategy.h \
- DiskDaemonDiskIOModule.cc \
- DiskDaemonDiskIOModule.h
-
-diskd_SOURCES = diskd.cc
-nodist_diskd_SOURCES = time.cc
-diskd_LDADD = \
- $(top_builddir)/lib/libmisccontainers.la \
- $(top_builddir)/lib/libmiscencoding.la \
- $(top_builddir)/lib/libmiscutil.la \
- $(COMPAT_LIB) \
- $(XTRA_LIBS)
-
-time.cc: $(top_srcdir)/src/time.cc
- cp $(top_srcdir)/src/time.cc time.cc
#include "squid.h"
#include "DiskIOModule.h"
-#if HAVE_DISKIO_MODULE_AIO
-#include "DiskIO/AIO/AIODiskIOModule.h"
-#endif
-#if HAVE_DISKIO_MODULE_BLOCKING
-#include "DiskIO/Blocking/BlockingDiskIOModule.h"
-#endif
-#if HAVE_DISKIO_MODULE_DISKDAEMON
-#include "DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h"
-#endif
-#if HAVE_DISKIO_MODULE_DISKTHREADS
-#include "DiskIO/DiskThreads/DiskThreadsDiskIOModule.h"
-#endif
-#if HAVE_DISKIO_MODULE_IPCIO
-#include "DiskIO/IpcIo/IpcIoDiskIOModule.h"
-#endif
-#if HAVE_DISKIO_MODULE_DISKTHREADS
-#include "DiskIO/Mmapped/MmappedDiskIOModule.h"
-#endif
std::vector<DiskIOModule*> *DiskIOModule::_Modules = NULL;
{
/** We cannot call ModuleAdd(*this)
* here as the virtual methods are not yet available.
- * We leave that to SetupAllModules() later.
+ * We leave that to PokeAllModules() later.
*/
}
void
DiskIOModule::SetupAllModules()
{
-#if HAVE_DISKIO_MODULE_AIO
- AIODiskIOModule::GetInstance();
-#endif
-#if HAVE_DISKIO_MODULE_BLOCKING
- BlockingDiskIOModule::GetInstance();
-#endif
-#if HAVE_DISKIO_MODULE_DISKDAEMON
- DiskDaemonDiskIOModule::GetInstance();
-#endif
-#if HAVE_DISKIO_MODULE_DISKTHREADS
- DiskThreadsDiskIOModule::GetInstance();
-#endif
-#if HAVE_DISKIO_MODULE_IPCIO
- IpcIoDiskIOModule::GetInstance();
-#endif
-#if HAVE_DISKIO_MODULE_MMAPPED
- MmappedDiskIOModule::GetInstance();
-#endif
+ DiskIOModule::PokeAllModules();
for (iterator i = GetModules().begin(); i != GetModules().end(); ++i)
/* Call the FS to set up capabilities and initialize the FS driver */
{
public:
- /** Poke all compiled modules for self-setup */
static void SetupAllModules();
static void ModuleAdd(DiskIOModule &);
static void FreeAllModules();
+ /** Poke all compiled modules for self-setup */
+ static void PokeAllModules();
+
static DiskIOModule *Find(char const *type);
/** Find *any* usable disk module. This will look for the 'best'
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-noinst_LTLIBRARIES = libDiskThreads.la
-
-libDiskThreads_la_SOURCES = \
- async_io.cc \
- CommIO.cc \
- CommIO.h \
- DiskThreads.h \
- DiskThreadsDiskFile.cc \
- DiskThreadsDiskFile.h \
- DiskThreadsDiskIOModule.cc \
- DiskThreadsDiskIOModule.h \
- DiskThreadsIOStrategy.cc \
- DiskThreadsIOStrategy.h
-
-if ENABLE_WIN32_AIOPS
-libDiskThreads_la_SOURCES += aiops_win32.cc
-EXTRA_DIST = aiops.cc
-else
-libDiskThreads_la_SOURCES += aiops.cc
-EXTRA_DIST = aiops_win32.cc
-endif
-
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-noinst_LTLIBRARIES = libIpcIo.la
-
-libIpcIo_la_SOURCES = \
- IpcIoDiskIOModule.cc \
- IpcIoDiskIOModule.h \
- IpcIoFile.cc \
- IpcIoFile.h \
- IpcIoIOStrategy.cc \
- IpcIoIOStrategy.h
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-SUBDIRS=
-DIST_SUBDIRS= AIO Blocking DiskDaemon DiskThreads IpcIo Mmapped
-
-noinst_LTLIBRARIES = libdiskio.la
-
-libdiskio_la_SOURCES = \
- DiskFile.h \
- DiskIOModule.cc \
- DiskIOModule.h \
- DiskIOStrategy.h \
- IORequestor.h \
- ReadRequest.cc \
- ReadRequest.h \
- WriteRequest.cc \
- WriteRequest.h
-
-# Custom DiskIO modules (if any):
-libdiskio_la_LIBADD = $(DISK_LIBS)
-
-# Optional DiskIO modules:
-
-if ENABLE_DISKIO_AIO
-SUBDIRS += AIO
-libdiskio_la_LIBADD += AIO/libAIO.la $(AIOLIB)
-endif
-
-if ENABLE_DISKIO_BLOCKING
-SUBDIRS += Blocking
-libdiskio_la_LIBADD += Blocking/libBlocking.la
-endif
-
-if ENABLE_DISKIO_DISKDAEMON
-SUBDIRS += DiskDaemon
-libdiskio_la_LIBADD += DiskDaemon/libDiskDaemon.la
-endif
-
-if ENABLE_DISKIO_DISKTHREADS
-SUBDIRS += DiskThreads
-libdiskio_la_LIBADD += DiskThreads/libDiskThreads.la $(LIBPTHREADS)
-endif
-
-if ENABLE_DISKIO_IPCIO
-SUBDIRS += IpcIo
-libdiskio_la_LIBADD += IpcIo/libIpcIo.la
-endif
-
-if ENABLE_DISKIO_MMAPPED
-SUBDIRS += Mmapped
-libdiskio_la_LIBADD += Mmapped/libMmapped.la
-endif
-
+++ /dev/null
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
-##
-## Squid software is distributed under GPLv2+ license and includes
-## contributions from numerous individuals and organizations.
-## Please see the COPYING and CONTRIBUTORS files for details.
-##
-
-include $(top_srcdir)/src/Common.am
-include $(top_srcdir)/src/TestHeaders.am
-
-noinst_LTLIBRARIES = libMmapped.la
-
-libMmapped_la_SOURCES = \
- MmappedDiskIOModule.cc \
- MmappedDiskIOModule.h \
- MmappedFile.cc \
- MmappedFile.h \
- MmappedIOStrategy.cc \
- MmappedIOStrategy.h
--- /dev/null
+#!/bin/sh
+#
+## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+##
+## Squid software is distributed under GPLv2+ license and includes
+## contributions from numerous individuals and organizations.
+## Please see the COPYING and CONTRIBUTORS files for details.
+##
+
+echo "/* automatically generated by $0 $*"
+echo " * do not edit"
+echo " */"
+cat `dirname $0`/../../scripts/boilerplate.h
+echo "#include \"squid.h\""
+echo "#include \"DiskIO/DiskIOModule.h\""
+for module in "$@"; do
+ echo "#include \"DiskIO/${module}/${module}DiskIOModule.h\""
+done
+echo ""
+echo "void DiskIOModule::PokeAllModules(void)"
+echo "{"
+for module in "$@"; do
+ echo " ${module}DiskIOModule::GetInstance();"
+done
+echo "}"
LoadableModules.h \
LoadableModules.cc
-SUBDIRS = mem base anyp helper dns ftp parser comm eui acl format clients servers fs repl DiskIO
-DIST_SUBDIRS = mem base anyp helper dns ftp parser comm eui acl format clients servers fs repl DiskIO
+SUBDIRS = mem base anyp helper dns ftp parser comm eui acl format clients servers fs repl
+DIST_SUBDIRS = mem base anyp helper dns ftp parser comm eui acl format clients servers fs repl
if ENABLE_AUTH
SUBDIRS += auth
IPC_SOURCE = SquidIpc.h ipc.cc
endif
+AIO_WIN32_ALL_SOURCES = \
+ DiskIO/AIO/aio_win32.cc \
+ DiskIO/AIO/aio_win32.h
+if ENABLE_WIN32_AIO
+AIO_WIN32_SOURCES = $(AIO_WIN32_ALL_SOURCES)
+else
+AIO_WIN32_SOURCES =
+endif
+
+if ENABLE_WIN32_AIOPS
+AIOPS_SOURCE = DiskIO/DiskThreads/aiops_win32.cc \
+ DiskIO/DiskThreads/CommIO.cc \
+ DiskIO/DiskThreads/CommIO.h
+else
+AIOPS_SOURCE = DiskIO/DiskThreads/aiops.cc \
+ DiskIO/DiskThreads/CommIO.cc \
+ DiskIO/DiskThreads/CommIO.h
+endif
+
+EXTRA_LIBRARIES = libAIO.a libBlocking.a libDiskDaemon.a libDiskThreads.a \
+ libMmapped.a libIpcIo.a
+noinst_LIBRARIES = $(DISK_LIBS)
noinst_LTLIBRARIES = libsquid.la
EXTRA_PROGRAMS = \
+ DiskIO/DiskDaemon/diskd \
unlinkd \
recv-announce \
tests/testUfs \
libexec_PROGRAMS = \
+ $(DISK_PROGRAMS) \
$(UNLINKD)
cf_gen_SOURCES = cf_gen.cc
ACL_REGISTRATION_SOURCES = AclRegs.cc AuthReg.cc
+DISKIO_SOURCE = \
+ DiskIO/DiskIOModule.cc \
+ DiskIO/ReadRequest.cc \
+ DiskIO/ReadRequest.h \
+ DiskIO/WriteRequest.cc \
+ DiskIO/WriteRequest.h \
+ DiskIO/DiskFile.h \
+ DiskIO/DiskIOStrategy.h \
+ DiskIO/IORequestor.h \
+ DiskIO/DiskIOModule.h \
+ DiskIO/ReadRequest.h
+
+DISKIO_GEN_SOURCE = \
+ DiskIO/DiskIOModules_gen.cc
+
+DiskIO/DiskIOModules_gen.cc: Makefile
+ $(SHELL) $(srcdir)/DiskIO/modules.sh $(DISK_MODULES) > DiskIO/DiskIOModules_gen.cc
+
+
# common library for all the binaries and tests. This is kindof a catch all
# and smaller libraries split from this are encouraged. Using lt convenience
# libraries, dependencies should not be a problem either.
$(DELAY_POOL_SOURCE) \
disk.h \
disk.cc \
+ $(DISKIO_SOURCE) \
dlink.h \
dlink.cc \
$(DNSSOURCE) \
$(WINSVC_SOURCE)
EXTRA_squid_SOURCES = \
+ $(AIO_WIN32_ALL_SOURCES) \
$(all_AUTHMODULES) \
ConfigOption.h \
$(DELAY_POOL_ALL_SOURCE) \
CLEANFILES += $(BUILT_SOURCES)
nodist_squid_SOURCES = \
+ $(DISKIO_GEN_SOURCE) \
$(BUILT_SOURCES)
squid_LDADD = \
acl/libacls.la \
acl/libstate.la \
$(AUTH_LIBS) \
+ $(DISK_LIBS) \
acl/libapi.la \
clients/libclients.la \
servers/libservers.la \
libsquid.la \
ip/libip.la \
fs/libfs.la \
- DiskIO/libdiskio.la \
$(SSL_LIBS) \
ipc/libipc.la \
mgr/libmgr.la \
$(XTRA_OBJS) \
$(DISK_LINKOBJS) \
$(REPL_OBJS) \
+ $(DISK_OS_LIBS) \
$(NETTLELIB) \
$(CRYPTLIB) \
$(REGEXLIB) \
fs/libfs.la \
ipc/libipc.la \
mgr/libmgr.la \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
$(DISK_LINKOBJS) \
$(REPL_OBJS)
cf_gen_defines \
cf.data.pre \
cf.data.depend \
+ DiskIO/modules.sh \
mk-globals-c.pl \
mk-globals-c.awk \
mk-string-arrays.pl \
mib.txt \
mime.conf.default
+libAIO_a_SOURCES = \
+ $(AIO_WIN32_SOURCES) \
+ DiskIO/AIO/async_io.h \
+ DiskIO/AIO/AIODiskFile.cc \
+ DiskIO/AIO/AIODiskFile.h \
+ DiskIO/AIO/AIODiskIOStrategy.cc \
+ DiskIO/AIO/AIODiskIOStrategy.h \
+ DiskIO/AIO/AIODiskIOModule.cc \
+ DiskIO/AIO/AIODiskIOModule.h
+
+libBlocking_a_SOURCES = \
+ DiskIO/Blocking/BlockingFile.cc \
+ DiskIO/Blocking/BlockingFile.h \
+ DiskIO/Blocking/BlockingIOStrategy.cc \
+ DiskIO/Blocking/BlockingIOStrategy.h \
+ DiskIO/Blocking/BlockingDiskIOModule.cc \
+ DiskIO/Blocking/BlockingDiskIOModule.h
+
+libMmapped_a_SOURCES = \
+ DiskIO/Mmapped/MmappedFile.cc \
+ DiskIO/Mmapped/MmappedFile.h \
+ DiskIO/Mmapped/MmappedIOStrategy.cc \
+ DiskIO/Mmapped/MmappedIOStrategy.h \
+ DiskIO/Mmapped/MmappedDiskIOModule.cc \
+ DiskIO/Mmapped/MmappedDiskIOModule.h
+
+libIpcIo_a_SOURCES = \
+ DiskIO/IpcIo/IpcIoFile.cc \
+ DiskIO/IpcIo/IpcIoFile.h \
+ DiskIO/IpcIo/IpcIoIOStrategy.cc \
+ DiskIO/IpcIo/IpcIoIOStrategy.h \
+ DiskIO/IpcIo/IpcIoDiskIOModule.cc \
+ DiskIO/IpcIo/IpcIoDiskIOModule.h
+
+libDiskDaemon_a_SOURCES = \
+ DiskIO/DiskDaemon/DiskdFile.cc \
+ DiskIO/DiskDaemon/DiskdFile.h \
+ DiskIO/DiskDaemon/DiskdIOStrategy.cc \
+ DiskIO/DiskDaemon/DiskdIOStrategy.h \
+ DiskIO/DiskDaemon/diomsg.h \
+ DiskIO/DiskDaemon/DiskDaemonDiskIOModule.cc \
+ DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h \
+ DiskIO/DiskDaemon/DiskdAction.cc \
+ DiskIO/DiskDaemon/DiskdAction.h
+
+libDiskThreads_a_SOURCES = \
+ $(AIOPS_SOURCE) \
+ DiskIO/DiskThreads/async_io.cc \
+ DiskIO/DiskThreads/DiskThreads.h \
+ DiskIO/DiskThreads/DiskThreadsDiskFile.cc \
+ DiskIO/DiskThreads/DiskThreadsDiskFile.h \
+ DiskIO/DiskThreads/DiskThreadsDiskIOModule.cc \
+ DiskIO/DiskThreads/DiskThreadsDiskIOModule.h \
+ DiskIO/DiskThreads/DiskThreadsIOStrategy.cc \
+ DiskIO/DiskThreads/DiskThreadsIOStrategy.h
+
+EXTRA_libDiskThreads_a_SOURCES = \
+ DiskIO/DiskThreads/aiops.cc \
+ DiskIO/DiskThreads/aiops_win32.cc \
+ DiskIO/DiskThreads/CommIO.cc \
+ DiskIO/DiskThreads/CommIO.h
+
+DiskIO_DiskDaemon_diskd_SOURCES = DiskIO/DiskDaemon/diskd.cc
+nodist_DiskIO_DiskDaemon_diskd_SOURCES = time.cc
+DiskIO_DiskDaemon_diskd_LDADD = \
+ $(top_builddir)/lib/libmisccontainers.la \
+ $(top_builddir)/lib/libmiscencoding.la \
+ $(top_builddir)/lib/libmiscutil.la \
+ $(COMPAT_LIB) \
+ $(XTRA_LIBS)
+
+
DEFAULT_HTTP_PORT = 3128
DEFAULT_ICP_PORT = 3130
DEFAULT_PREFIX = $(prefix)
@$(SHELL) $(top_srcdir)/scripts/remove-cfg.sh "$(RM)" $(DESTDIR)$(DEFAULT_CONFIG_FILE) squid.conf.default
CLEANFILES += cf.data squid.conf.default squid.conf.documented \
+ DiskIO/DiskIOModules_gen.cc \
test_tools.cc *.a
test_tools.cc: $(top_srcdir)/test-suite/test_tools.cc
$(top_builddir)/lib/libmisccontainers.la \
$(top_builddir)/lib/libmiscencoding.la \
$(top_builddir)/lib/libmiscutil.la \
+ $(DISK_OS_LIBS) \
$(NETTLELIB) \
$(REGEXLIB) \
$(SQUID_CPPUNIT_LIBS) \
CpuAffinitySet.cc \
CpuAffinitySet.h \
$(DELAY_POOL_SOURCE) \
+ $(DISKIO_SOURCE) \
disk.h \
disk.cc \
dlink.h \
wordlist.h \
wordlist.cc
nodist_tests_testCacheManager_SOURCES = \
- $(BUILT_SOURCES)
+ $(BUILT_SOURCES) \
+ $(DISKIO_GEN_SOURCE)
# comm.cc only requires comm/libcomm.la until fdc_table is dead.
tests_testCacheManager_LDADD = \
libsquid.la \
log/liblog.la \
format/libformat.la \
$(REPL_OBJS) \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
$(ADAPTATION_LIBS) \
$(ESI_LIBS) \
$(SSL_LIBS) \
ConfigOption.cc \
ConfigParser.cc \
$(DELAY_POOL_SOURCE) \
+ $(DISKIO_SOURCE) \
disk.h \
disk.cc \
tests/stub_ETag.cc \
tests/stub_tools.cc
nodist_tests_testDiskIO_SOURCES= \
$(TESTSOURCES) \
+ $(DISKIO_GEN_SOURCE) \
SquidMath.cc \
SquidMath.h \
swap_log_op.cc
fs/libfs.la \
ipc/libipc.la \
$(REPL_OBJS) \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
acl/libapi.la \
anyp/libanyp.la \
mgr/libmgr.la \
tests_testDiskIO_LDFLAGS = $(LIBADD_DL)
tests_testDiskIO_DEPENDENCIES = \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
$(SWAP_TEST_DS) \
$(SQUID_CPPUNIT_LA)
CpuAffinitySet.h \
debug.cc \
$(DELAY_POOL_SOURCE) \
+ $(DISKIO_SOURCE) \
disk.h \
disk.cc \
dlink.h \
wordlist.h \
wordlist.cc
nodist_tests_testEvent_SOURCES = \
- $(BUILT_SOURCES)
+ $(BUILT_SOURCES) \
+ $(DISKIO_GEN_SOURCE)
tests_testEvent_LDADD = \
libsquid.la \
clients/libclients.la \
$(top_builddir)/lib/libmisccontainers.la \
$(top_builddir)/lib/libmiscencoding.la \
$(top_builddir)/lib/libmiscutil.la \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
ipc/libipc.la \
mgr/libmgr.la \
$(SNMP_LIBS) \
CpuAffinitySet.h \
debug.cc \
$(DELAY_POOL_SOURCE) \
+ $(DISKIO_SOURCE) \
disk.h \
disk.cc \
dlink.h \
wordlist.h \
wordlist.cc
nodist_tests_testEventLoop_SOURCES = \
- $(BUILT_SOURCES)
+ $(BUILT_SOURCES) \
+ $(DISKIO_GEN_SOURCE)
tests_testEventLoop_LDADD = \
libsquid.la \
clients/libclients.la \
$(top_builddir)/lib/libmisccontainers.la \
$(top_builddir)/lib/libmiscencoding.la \
$(top_builddir)/lib/libmiscutil.la \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
ipc/libipc.la \
mgr/libmgr.la \
$(SNMP_LIBS) \
CpuAffinitySet.h \
debug.cc \
$(DELAY_POOL_SOURCE) \
+ $(DISKIO_SOURCE) \
disk.h \
disk.cc \
dlink.h \
wordlist.h \
wordlist.cc
nodist_tests_test_http_range_SOURCES = \
- $(BUILT_SOURCES)
+ $(BUILT_SOURCES) \
+ $(DISKIO_GEN_SOURCE)
tests_test_http_range_LDADD = \
libsquid.la \
clients/libclients.la \
log/liblog.la \
format/libformat.la \
$(REPL_OBJS) \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
$(ADAPTATION_LIBS) \
$(ESI_LIBS) \
$(SSL_LIBS) \
$(top_builddir)/lib/libmisccontainers.la \
$(top_builddir)/lib/libmiscencoding.la \
$(top_builddir)/lib/libmiscutil.la \
+ $(DISK_OS_LIBS) \
$(NETTLELIB) \
$(REGEXLIB) \
$(SQUID_CPPUNIT_LIBS) \
SWAP_TEST_DS =\
repl_modules.o \
+ $(DISK_LIBS) \
ident/libident.la \
acl/libacls.la \
acl/libstate.la \
libsquid.la \
ip/libip.la \
fs/libfs.la \
- DiskIO/libdiskio.la \
ipc/libipc.la \
mgr/libmgr.la \
$(REPL_OBJS) \
tests/testStoreSupport.h \
time.cc \
wordlist.h \
- wordlist.cc
+ wordlist.cc \
+ $(DISKIO_SOURCE)
nodist_tests_testUfs_SOURCES = \
$(TESTSOURCES) \
+ $(DISKIO_GEN_SOURCE) \
SquidMath.cc \
SquidMath.h \
swap_log_op.cc
mgr/libmgr.la \
$(REPL_OBJS) \
acl/libacls.la \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
acl/libapi.la \
$(SSL_LIBS) \
ipc/libipc.la \
wordlist.h \
wordlist.cc \
$(DELAY_POOL_SOURCE) \
+ $(DISKIO_SOURCE) \
$(UNLINKDSOURCE)
nodist_tests_testRock_SOURCES = \
+ $(DISKIO_GEN_SOURCE) \
swap_log_op.cc \
SquidMath.cc \
SquidMath.h \
fs/libfs.la \
$(COMMON_LIBS) \
$(REPL_OBJS) \
- DiskIO/libdiskio.la \
+ $(DISK_LIBS) \
+ $(DISK_OS_LIBS) \
acl/libacls.la \
acl/libapi.la \
acl/libstate.la \
icmp/libicmp.la icmp/libicmp-core.la \
comm/libcomm.la \
log/liblog.la \
+ $(DISK_OS_LIBS) \
format/libformat.la \
$(REGEXLIB) \
$(REPL_OBJS) \
#include "mgr/Request.h"
#include "mgr/Response.h"
#include "SwapDir.h" /* XXX: scope boundary violation */
-#if HAVE_DISKIO_MODULE_IPCIO
+#if USE_DISKIO_IPCIO
#include "DiskIO/IpcIo/IpcIoFile.h" /* XXX: scope boundary violation */
#endif
#if SQUID_SNMP
SharedListenJoined(SharedListenResponse(message));
break;
-#if HAVE_DISKIO_MODULE_IPCIO
+#if USE_DISKIO_IPCIO
case mtStrandSearchResponse:
IpcIoFile::HandleOpenResponse(StrandSearchResponse(message));
break;
case mtIpcIoNotification:
IpcIoFile::HandleNotification(message);
break;
-#endif /* HAVE_DISKIO_MODULE_IPCIO */
+#endif /* USE_DISKIO_IPCIO */
case mtCacheMgrRequest: {
const Mgr::Request req(message);
void DiskIOModule::SetupAllModules() STUB
void DiskIOModule::ModuleAdd(DiskIOModule &) STUB
void DiskIOModule::FreeAllModules() STUB
+void DiskIOModule::PokeAllModules() STUB
DiskIOModule *DiskIOModule::Find(char const *) STUB_RETVAL(NULL)
DiskIOModule *DiskIOModule::FindDefault() STUB_RETVAL(NULL)
std::vector<DiskIOModule*> const &DiskIOModule::Modules() STUB_RETSTATREF(std::vector<DiskIOModule*>)