/usr/include/elektra/kdbos.h is in libelektra-dev 0.8.14-5.
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 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | /***************************************************************************
kdbos.h - operating system specific workarounds
-------------------
begin : Mon Dec 29 2003
copyright : (C) 2003 by Avi Alkalay
email : avi@unix.sh
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the BSD License (revised). *
* *
***************************************************************************/
/* This header purpose is that afterwards following types are defined:
* .. means don't care, just enough for your system
* For more information on that types read POSIX documentation.
*
*
* Integer Types must be at least 32bit:
*
* Type Purpose Limits
* int Integral Fast Type INT_MIN, INT_MAX
* size_t size of array or string 0, SIZE_MAX
* ssize_t size with error cond. -1, SSIZE_MAX(<SIZE_MAX)
* time_t Seconds since 1970 0,.. recommended: 64 bit
* uid_t User identification 0,..
* gid_t Group identification 0,..
*
*
* Following Elektra specific types must be defined with at least 32 bit:
*
* Type Purpose
* keyswitch_t For keyNew
* option_t For kdbGet, kdbSet and ksLookup*
* cursor_t stores information to find a position in a keyset
*
* Following constants must be defined:
*
* KDB_PATH_SEPARATOR how to delimit pathnames
* KDB_FILE_MODE the standard mode for keys
* KDB_DIR_MODE the mode to add (|=) for key directories
* KDB_MAX_UCHAR the maximum value of unsigned char
*
* Following limits must be defined (in addition to limits mentioned
* above for types):
*
* KDB_MAX_PATH_LENGTH the maximum length for a pathname
*
* In addition to the types the ... or va_list must be supported,
* this is ISO C and should happen by including <stdarg.h>.
*
* Go ahead and write a #ifdef block for your operating system
* when the POSIX defaults are not ok.
*/
#ifndef KDBOS_H
#ifndef KDB_H
# error you attempted to include kdbos.h outside from kdb.h, please include kdb.h instead
#endif
#define KDBOS_H
#ifdef __cplusplus
#define KS_END (static_cast<ckdb::Key*>(0))
#else
#define KS_END ((Key*)0)
#endif
#ifdef __GNUC__
#undef ELEKTRA_SENTINEL
#define ELEKTRA_SENTINEL __attribute__ ((sentinel))
#endif
#ifdef __GNUC__
#define ELEKTRA_NOINLINE __attribute__((noinline))
#else
#define ELEKTRA_NOINLINE
#endif
#ifndef WIN32
/***************************************************
* Posix Compatible
***************************************************/
#ifndef __USE_POSIX
#define __USE_POSIX
#endif
#include <limits.h>
/* Conforming C++ programs are not allowed to
* include inttypes.h*/
#include <inttypes.h>
#include <sys/types.h>
/**KDB_MAX_PATH_LENGTH will be the value for longest
* possible filenames on the system.*/
/*Some systems have even longer pathnames*/
#ifdef PATH_MAX
#define KDB_MAX_PATH_LENGTH PATH_MAX
/*This value is garanteed on any Posixsystem*/
#elif defined __USE_POSIX
#define KDB_MAX_PATH_LENGTH _POSIX_PATH_MAX
#else
#define KDB_MAX_PATH_LENGTH 4096
#endif
/**Default Mode.
* This mode will be used for new files*/
#define KDB_FILE_MODE 0600
/**Default directory mode.
* This mode will be used for new directories.
* Will be ORed together with KDB_FILE_MODE
* to get the permissions of an directory.*/
#define KDB_DIR_MODE 0100
#else /* WIN32 */
/***************************************************
* Windows (using mingw)
***************************************************/
/* Avoid the most crazy things */
#ifndef NOMINMAX
# define NOMINMAX
#endif
#include <windows.h>
#include <limits.h>
#include <sys/types.h>
// # define usleep(x) Sleep(x)
// # define ssize_t int
// # define snprintf _snprintf
#define KDB_MAX_PATH_LENGTH 4096
#endif /* WIN32 */
/***************************************************
* For ANSI C systems
***************************************************/
/* Include essential headers used in kdb.h */
#include <stdarg.h>
/*Type to point to every position within the keyset
* (note that for windows ssize_t is already redefined
* as int) */
typedef ssize_t cursor_t;
/*Integer types*/
typedef int keyswitch_t;
typedef int option_t;
/**@brief Separator for key names.
*
* This character will be used to separate key names
*
* @see @link keyname here @endlink.
* */
#define KDB_PATH_SEPARATOR '/'
/**@brief Escape symbol for special characters in the key name.
*
* @see @link keyname here @endlink.
* */
#define KDB_PATH_ESCAPE '\\'
/**For iteration over trie children/values
*
* for (i=0; i<KDB_MAX_UCHAR; ++i)
* */
#define KDB_MAX_UCHAR (UCHAR_MAX+1)
#endif /* KDBOS_H */
|