From: Martin Mares Date: Thu, 30 Oct 2008 21:52:16 +0000 (+0100) Subject: Split cf/library to cf/libucw and cf/libsherlock. X-Git-Tag: holmes-import~227^2~5^2~1 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=582adf1295e92d89c3f38d3f7cea930cba2405d6;p=libucw.git Split cf/library to cf/libucw and cf/libsherlock. Each part is installed together in the respective library's install target. --- diff --git a/cf/libucw b/cf/libucw new file mode 100644 index 00000000..38d2ea51 --- /dev/null +++ b/cf/libucw @@ -0,0 +1,174 @@ +# Configuration of the UCW library and related utilities (included by cf/sherlock) + +######## Memory Mapped Access to Files ########################################## + +# Whenever you specify 0 for I/O buffer size, memory mapping is used instead. +FBMMap { + +# Map this many bytes at once (needs to be a multiple of CPU page size) +WindowSize 1M + +# When in need to extend a file, grow it by so many bytes (>= page size) +ExtendSize 1M + +} + +######## Direct Streamed I/O on Files ########################################### + +FBDirect { + +# Debug: Cheat by turning off O_DIRECT +#Cheat 1 + +} + +######## Atomic Multi-Threaded I/O on Files ##################################### + +FBAtomic { + +# Enable tracing +#Trace 1 + +} + +######## Parametrized I/O on Files ############################################## + +FBParam { + +Defaults { + +# Access type (std|direct|mmap). +Type std + +# Size of I/O buffer. Something of the order of megabytes for fast disks is recommended for direct I/O. +BufSize 64K + +# Optimize for mixed forward/backward reading (standard I/O only) +KeepBackBuf 0 + +# Perform read-ahead (direct I/O only) +ReadAhead 1 + +# Maximum number of write-back requests queued (direct I/O only) +WriteBack 1 + +} + +} + +######## Temporary files ######################################################## + +Tempfiles { + +# By default, we use the system's default temporary directory ($TMPDIR or /tmp), +# but sometimes it is better to store the temporary files in the local tree. +Dir tmp + +# Prefix of temporary file names +Prefix temp- + +# By default, we append a random number to Prefix to get a temporary file name. +# If Prefix points to a directory that is not writable by malicious users, +# we can be less careful and use more consistent names of temporary files +# formed by adding "pid(-tid)-counter" instead. +PublicDir 0 + +} + +######## Threads ################################################################ + +Threads { + +# Default thread stack size +DefaultStackSize 64K + +} + +######## Sorter ################################################################# + +Sorter { + +# Trace sorting (1=basic statistics, 2=more stats, 3 and more for debugging) +Trace 2 + +# Trace array sorting (internal sorters) +TraceArray 0 + +# How much memory is the sorter allowed to use +SortBuffer 4M + +# File access used by the sorter (see FBParam section for details) +FileAccess std 256K + +# Use a different file access method for small inputs (less than the specified size) +SmallFileAccess std 64K +SmallInput 64M + +# Min-/Maximum number of bits to use in the external radix-sort (beware, we will open +# 1+2^this files and require a stream buffer for each of them; however, while we are +# doing that, the sort buffer is not allocated). Set both to zero to disable radix-sorting. +MinRadixBits 2 +MaxRadixBits 4 + +# The same for multi-way merging. The memory requirements are also the same, +# but please keep in mind that this can create lots of SortBuffer-sized files, +# so it is probably better to keep it disabled if you have a small SortBuffer. +MinMultiwayBits 2 +MaxMultiwayBits 4 + +# If we did not use radix-sorter to the full width, we still might add some more +# bits to the width to get chunks which are even smaller than SortBuffer, because +# it can speed up internal sorting later. However, we also want to avoid small +# files, so we add only a little. +AddRadixBits 2 + +# Number of threads used for sorting (0=disable threading) +Threads 0 + +# Minimum size of input (in bytes) to consider multi-threaded internal sorting +ThreadThreshold 1M + +# Chunks smaller than ThreadThreshold are sorted by a sequential algorithm, but +# if they are at least of the following size, different chunks are sorted in +# parallel. There is a slight space penalty for setting up the parallel process, +# so better avoid setting this number too small. +ThreadChunk 256 + +# Internal radix-sort stops at this size and switches to QuickSort (must be >0) +RadixThreshold 4K + +# Debugging switches (see the source) +Debug 0 + +} + +######## URL processing ######################################################### + +URL { + +# Ignore spaces at the start/end of a URL +IgnoreSpaces 1 + +# Ignore underflows in relative paths (/../ from root) +IgnoreUnderflow 1 + +# Some URL's with many repeated components are filtered out to avoid infinite +# URL's (e.g. http://czech.recoder.cz/win/iso/win/iso/file.html, or +# http://a.com/?a=b&a=b&a=b, ...). +# The URL is split to components divided by any of the specified separators. +# Then the separators are forgotten and the components between them are +# examined. +ComponentSeparators /&? + +# URL is filtered out if there's a sequence of components in a row with at most +# MaxRepeatLength components and the sequence is repeated more than MinRepeatCount +# times. Default values are high MinRepeatCount and low MaxRepeatLength, so the +# mechanism is disabled. +MinRepeatCount 4 +MaxRepeatLength 4 + +# Maximum number of occurences of a single component in the entire URL (possibly interleaved +# by different components). The detector is disabled by default. +MaxOccurences 4 + +} diff --git a/ucw/Makefile b/ucw/Makefile index e536663f..a26c9036 100644 --- a/ucw/Makefile +++ b/ucw/Makefile @@ -154,9 +154,10 @@ endif INSTALL_TARGETS+=install-libucw install-libucw: - install -d -m 755 $(DESTDIR)$(INSTALL_LIB_DIR) $(DESTDIR)$(INSTALL_INCLUDE_DIR)/ucw/ $(DESTDIR)$(INSTALL_PKGCONFIG_DIR) + install -d -m 755 $(DESTDIR)$(INSTALL_LIB_DIR) $(DESTDIR)$(INSTALL_INCLUDE_DIR)/ucw/ $(DESTDIR)$(INSTALL_PKGCONFIG_DIR) $(DESTDIR)$(INSTALL_CONFIG_DIR) install -m 644 $(addprefix run/include/ucw/,$(LIBUCW_MAIN_INCLUDES) autoconf.h config.h) $(DESTDIR)$(INSTALL_INCLUDE_DIR)/ucw/ install -m 644 run/lib/pkgconfig/libucw.pc $(DESTDIR)$(INSTALL_PKGCONFIG_DIR) install -m 644 run/lib/libucw.$(LS) $(DESTDIR)$(INSTALL_LIB_DIR) + install -m 644 run/cf/libucw $(DESTDIR)$(INSTALL_CONFIG_DIR) .PHONY: install-libucw