/usr/include/kdbos.h is in libelektra-dev 0.7.1-1.
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 | /***************************************************************************
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.
*
* Type Purpose Limits
* 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
*
* Integer Types must be at least 32bit:
*
* int Integral Fast Type INT_MIN, INT_MAX
* uid_t User identification 0,..
* gid_t Group identification 0,..
* type_t Typing information -1,..
* keyswitch_t For keyNew
* option_t For kdbGet, kdbSet and ksLookup*
*
*
* Following elektra specific types are defined:
*
* Type Purpose
* cursor_t stores information to find a position in a keyset
*
* Following constants must be defined:
*
* KEY_SEPARATOR how to delimit keynames
* PATH_SEPARATOR how to delimit pathnames
* KEY_DEF_MODE the standard mode for keys
* KEY_DIR_MODE the mode to add (|=) for key directories
*
* Following limits must be defined (in addition to limits mentioned
* above for types):
*
* MAX_UCHAR the maximum for unsigned char
* MAX_KEY_LENGTH the maximum length for a keyname
* 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
#define KDBOS_H
/* Include essential headers used in kdb.h */
#include <stdarg.h>
#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>
/**Separator for Path names*/
#define PATH_SEPARATOR '/'
/**MAX_PATH_LENGTH will be the value for longest
* possible filenames on the system.*/
/*Some systems have even longer pathnames*/
#ifdef PATH_MAX
#define MAX_PATH_LENGTH PATH_MAX
/*This value is garanteed on any Posixsystem*/
#elif defined __USE_POSIX
#define MAX_PATH_LENGTH _POSIX_PATH_MAX
#else
#define MAX_PATH_LENGTH 4096
#endif
/*Type to point to every position within the keyset*/
typedef ssize_t cursor_t;
/*Integer types*/
typedef int type_t;
typedef int keyswitch_t;
typedef int option_t;
/**Separator for key names.
* This character will be used to separate key names*/
#define KEY_SEPARATOR '/'
/**Default Mode.
* This mode will be used for fresh keys*/
#define KEY_DEF_MODE 0664
/**Default directory mode.
* This mode will be ORed to have a directory key*/
#define KEY_DEF_DIR 0111
/**Lets assume that the namespace + relative path is shorter then the absolute path.
* So the maximum length of key is what the system allows for the path.*/
#define MAX_KEY_LENGTH MAX_PATH_LENGTH
#else /* WIN32 */
/***************************************************
* Windows
***************************************************/
# include <windows.h>
# include <limits.h>
# define usleep(x) Sleep(x)
# define ssize_t int
# define snprintf _snprintf
/**Separator for Path names*/
#define PATH_SEPARATOR '\\'
#define MAX_PATH_LENGTH 4096
/*Type to point to every position within the keyset*/
typedef ssize_t cursor_t;
/*Integer types*/
typedef int type_t;
typedef int keyswitch_t;
typedef int option_t;
/**Separator for key names.
* This character will be used to separate key names*/
#define KEY_SEPARATOR '/'
/**Default Mode.
* This mode will be used for fresh keys*/
#define KEY_DEF_MODE 0664
/**Default directory mode.
* This mode will be ORed to have a directory key*/
#define KEY_DEF_DIR 0111
/**Lets assume that the namespace + relative path is shorter then the absolute path.
* So the maximum length of key is what the system allows for the path.*/
#define MAX_KEY_LENGTH MAX_PATH_LENGTH
#endif /* WIN32 */
#endif /* KDBOS_H */
|