/usr/include/osl/oslConfig.h is in libosl-dev 0.8.0-1.4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | /* oslConfig.h
*/
#ifndef OSL_OSLCONFIG_H
#define OSL_OSLCONFIG_H
#include "osl/config.h"
#include <stdexcept>
#include <string>
#include <utility>
#include <mutex>
#include <functional>
#include <cassert>
#include <vector>
namespace osl
{
/** osl の実行環境に関する指定 */
struct OslConfig
{
static const int MaxThreads=64;
/** compile時に指定されたディレクトリを返す. 実行時の指定は環境変数が基本 */
static const std::string& home(const std::string& initialize_if_first_invocation="");
static const char * home_c_str();
static const std::string gpsusiConf();
/** テストケースのデータ */
static const std::string testPrivate();
static const std::string testPublic();
static const char *testPrivateFile(const std::string& filename);
static const char *testPublicFile(const std::string& filename);
static const char *testCsaFile(const std::string& filename);
/** 標準の定跡ファイルを返す
* @param filename specify to use non-standard file
* (absolute path, or home()/data/filename otherwise)
*/
static const char *openingBook(const std::string& filenamme="");
static void setVerbose(bool verbose);
static bool verbose();
static void showOslHome();
static void setNumCPUs(int ncpu);
static int concurrency();
static int dfpnMaxDepth();
static void setDfpnMaxDepth(int);
enum UsiMode { NoUSI, PortableUSI, ExtendedUSI };
static UsiMode usiMode();
static void setUsiMode(UsiMode new_mode=PortableUSI);
static bool usiModeInSilent();
static void setUsiSilent(bool silent=true);
static bool searchExactValueInOneReply();
static void setSearchExactValueInOneReply(bool new_value);
static size_t residentMemoryUse();
static size_t memoryUseLimit()
{
return static_cast<size_t>(memory_use_limit * memory_use_percent / 100.0);
}
static void setMemoryUseLimit(size_t limit) { memory_use_limit = limit; }
static double memoryUseRatio()
{
return residentMemoryUse() * 1.0 / memoryUseLimit();
}
static bool isMemoryLimitEffective()
{
return memory_use_limit != memory_use_limit_system_max
&& residentMemoryUse() > 0;
}
static void setMemoryUsePercent(double limit)
{
assert(limit > 0.0 && limit <= 100.0);
limit = std::max(0.01, limit);
limit = std::min(100.0, limit);
memory_use_percent = limit;
}
/** @return standard deviation of normal distribution */
static unsigned int evalRandom() { return eval_random; }
static void setEvalRandom(unsigned int sigma) { eval_random = sigma; }
static void setUsiOutputPawnValue(int new_value) { usi_output_pawn_value = new_value; }
static int usiOutputPawnValue() { return usi_output_pawn_value; }
/** @return 0 not testing, 1 short test, 2 long test */
static int inUnitTest() { return in_unit_test; }
static bool inUnitTestShort() { return in_unit_test == 1; }
static bool inUnitTestLong() { return in_unit_test == 2; }
static void setInUnitTest(int new_value) { in_unit_test = new_value; }
/** 評価関数等を初期化. mainの中で一度呼ぶ必要がある */
static void setUp();
static bool hasByoyomi();
static void setHasByoyomi(bool);
static bool healthCheck();
static int resignThreshold();
static std::string configuration();
private:
static const std::string makeHome(const std::string& first_try="");
static const std::string makeTest();
static const std::string makeTestPublic();
static bool isGoodDir(const std::string&);
static void trySetDir(std::string&, const std::string&);
static void showOslHome(const std::string&);
static size_t memory_use_limit;
static double memory_use_percent;
static const size_t memory_use_limit_system_max;
static unsigned int eval_random;
static bool is_verbose;
static const int default_ncpus;
static int num_cpu;
static volatile UsiMode usi_mode;
static volatile bool usi_mode_silent;
static int usi_output_pawn_value;
static bool search_exact_value_in_one_reply, has_byoyomi;
static volatile bool force_root_window;
static volatile int root_window_alpha, root_window_beta;
static volatile int in_unit_test;
static int dfpn_max_depth;
public:
static std::mutex lock_io;
// designed to be called before main
static void registerInitializer(std::function<void()>);
};
struct SetUpRegister
{
SetUpRegister(std::function<void()> f) {
OslConfig::registerInitializer(f);
}
};
struct NoMoreMemory : std::runtime_error
{
NoMoreMemory() : std::runtime_error("memory exhausted")
{
}
};
}
#endif /* OSL_OSLCONFIG_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
|