# cygserver.conf
#
# Contains configurable parameters for the cygserver.
#
# The format of this file is easy.  Lines beginning with a hash `#' are
# comments and ignored.  Lines consisting of only whitespaces are ignored.
# Any other line is a setting for cygserver.
# A setting consists of a name/value pair, separated by whitespace.
# Each line must only consist of one name/value pair.
# Lines must not be longer than 1023 characters.
#
# Some settings can be overridden by a command line switch.  If so, it's
# mentioned below.
#
# Settings which are commented out will use the default values.  These are
# mentioned below, too.

# kern.srv.cleanup_threads: No. of cygserver threads used for cleanup tasks.
# Default: 2, Min: 1, Max: 16, command line option -c, --cleanup-threads
#kern.srv.cleanup_threads 2

# kern.srv.request_threads: No. of cygserver threads used to serve
#                           application requests.
# Default: 10, Min: 1, Max: 310, command line option -r, --request-threads
#kern.srv.request_threads 10

# kern.srv.process_cache_size: No. of concurrent processes which can be handled
#                              by Cygserver concurrently.
# Default: 62, Min: 1, Max: 310, command line option -p, --process-cache
#kern.srv.process_cache_size 62

# kern.srv.msgqueues: Determines whether XSI Message Queue support should be
# started, "yes" (or "true", "y", "t", "1") or "no" (or "false", "n", "f", "0").
# These values are valid for all binary type options.
# Default is "yes".  Command line option -q, --no-msgqueues
#kern.srv.msgqueues yes

# kern.srv.semaphores: Determines whether XSI Semaphore support should be
# started.  Default is "yes".  Command line option -s, --no-semaphores
#kern.srv.semaphores yes

# kern.srv.sharedmem: Determines whether XSI Shared Memory support should be
# started.  Default is "yes".  Command line option -m, --no-sharedmem
#kern.srv.sharedmem yes

# LOGGING

# kern.log.syslog: Determines whether logging should go to the syslog,
# Default is "yes", if stderr is no tty, "no" otherwise.
# Command line option -y, --syslog or -Y, --no-syslog.
#kern.log.syslog no

# kern.log.stderr: Determines whether logging should go to stderr,
# Default is "yes", if stderr is a tty, "no" otherwise.
# Command line option -e, --stderr or -E, --no-stderr.
#kern.log.stderr no

# kern.log.level: Logging level.  Valid values are 1 to 7 with a bigger
# value emitting more logging output.  Default level is 6.
# Command line option -l, --log-level.
#kern.log.level 6

# kern.log.debug: Determines whether debug output should be printed to stderr.
# Default is "no".  Command line option -d, --debug
#kern.log.debug no

# XSI message queue parameters.
#
# Each message is broken up and stored in segments that are msgssz bytes
# long.  For efficiency reasons, this should be a power of two.  Also,
# it doesn't make sense if it is less than 8 or greater than about 256.

# kern.ipc.msgseg: Maximum no. of message queue segments hold concurrently.
# Default: 2048, Min: 256, Max: 65535
#kern.ipc.msgseg 2048

# kern.ipc.msgssz: Size of segment in bytes.  Must be a power of 2 value.
# Default: 8, Min: 8, Max: 1024
#kern.ipc.msgssz 8

# kern.ipc.msgmnb: Maximum no. of bytes in a single message queue.
# Default: 2048, Min: 1, Max: 65535
#kern.ipc.msgmnb 2048

# kern.ipc.msgmni: Maximum no. of message queue identifiers hold concurrently.
# Default: 40, Min: 1, Max: 1024
#kern.ipc.msgmni 40

# kern.ipc.msgtql: Maximum no. of messages hold concurrently.
# Default: 40, Min: 1, Max: 1024
#kern.ipc.msgtql 40

# XSI semaphore parameters

# kern.ipc.semmni: Maximum no. of semaphore identifiers hold concurrently.
# Default: 10, Min: 1, Max: 1024
#kern.ipc.semmni 10

# kern.ipc.semmns: Maximum no. of semaphores hold concurrently.
# Default: 60, Min: 1, Max: 1024
#kern.ipc.semmns 60

# kern.ipc.semmnu: Total no. of undo structures hold by server.
# Default: 30, Min: 1, Max: 1024
#kern.ipc.semmnu 30

# kern.ipc.semmsl: Maximum no. of semaphores per semaphore id.
# Default: 60, Min: 1, Max: 1024
#kern.ipc.semmsl 60

# kern.ipc.semopm: Maximum no. of operations per semop call.
# Default: 100, Min: 1, Max: 1024
#kern.ipc.semopm 100

# kern.ipc.semume: Maximum no. of undo entries per process.
# Default: 10, Min: 1, Max: 1024
#kern.ipc.semume 10

# kern.ipc.semvmx: Maximum value of a semaphore.
# Default: 32767, Min: 1, Max: 32767
#kern.ipc.semvmx 32767

# kern.ipc.semaem: Maximum value to adjust on process exit.
# Default: 16384, Min: 1, Max: 32767
#kern.ipc.semaem 16384

# XSI shared memory parameters

# kern.ipc.shmmaxpgs: Maximum pages available for XSI shared memory.
# Changing shmmaxpgs immediately affects setting SHMMAX.  The relation
# between shmmaxpgs and SHMMAX is:  SHMMAX = shmmaxpgs * getpagesize().
# Default: 8192, Min: 1, Max: 32767
#kern.ipc.shmmaxpgs 8192

# kern.ipc.shmmni: Maximum number of shared memory segments, system wide.
# Default: 192, Min: 1, Max: 32767
#kern.ipc.shmmni 192

# kern.ipc.shmseg: Maximum number of shared memory segments per process.
# Default: 128, Min: 1, Max: 32767
#kern.ipc.shmseg 128

# kern.ipc.shm_allow_removed: Determines whether a process is allowed to
# attach to a shared memory segment (using the shmat call) after a successful
# call to shmctl(IPC_RMID).  This is a Linux-specific, and therefore
# non-portable feature.  Use with care.  Default is "no".
#kern.ipc.shm_allow_removed no
