librnr  1.14.5
RoadNarrows Robotics Common Library 1
rnrconfig.h File Reference

RoadNarrows Robotics common configuration file. More...

#include <sys/param.h>
#include <sys/types.h>

Go to the source code of this file.

Macros

#define C_DECLS_BEGIN
 C declaration block begin in C.
 
#define C_DECLS_END
 C declaration block end in C.
 
#define C_DECLS
 C declaration line in C.
 
#define C_EXTERN   extern
 C extern declaration in C.
 
#define OSNAME   "linux"
 OS simple name.
 
#define DLL_EXPORT
 declarator at definition
 
#define DLL_EXPORT_DECL   C_DECLS
 declarator at declaration
 
#define INLINE_IN_H   C_DECLS static inline
 inline C funtion in C header
 
#define true   (bool_t)1
 (if only it were) true
 
#define false   (bool_t)0
 (never to thy self be) false
 
#define NULL   ((void *)0)
 null pointer
 
#define MAX_LINE   2048
 Maximum bytes of input line (including NULL)
 
#define MAX_PATH   1024
 Maximum bytes of a fully qualified, absolute file name (including NULL)
 
#define MAX_BASENAME   256
 Maximum bytes of a file basename of path component (including NULL)
 
#define MAX_SEARCH_PATH   4096
 Maximum bytes of a PATH_SEP separated search path string (including NULL)
 
#define PATH_SEP_CHAR   ':'
 path separator (char version)
 
#define PATH_SEP_STR   ":"
 path separator (string version)
 
#define DIR_SEP_CHAR   '/'
 directory component separator (char version)
 
#define DIR_SEP_STR   "/"
 directory component separator (string version)
 
#define FILE_SEP
 file separator group define
 
#define THISFUNCNAME   __func__
 function name
 
#define arraysize(array)   (sizeof(array)/sizeof(array[0]))
 array size, i.e. number of array entries More...
 
#define memberoffset(structname, member)   (size_t)(&(((structname *)0)->member))
 structure member offset (bytes) More...
 
#define memberlvalue(ctype, ptr, offset)   *((ctype *)(ptr + offset))
 member lvalue More...
 
#define memberassign(ctype, ptr, offset, val)   memberlvalue(ctype, ptr, offset) = (ctype)val
 member assignment More...
 
#define member_defines
 member group defines
 
#define OK   0
 Okay.
 
#define EC_ERROR   4
 general error exit code
 
#define EC_BAD_OPT   2
 bad command line option exit code
 
#define RC_ERROR   (-1)
 common function error return code
 
#define DO_PRAGMA(x)
 CPP pragma macro. More...
 
#define PRAGMA_DIAG(x, y)   DO_PRAGMA(x #y)
 CPP diagnostics pragma macro. More...
 
#define PRAGMA_IGNORED(filter)   PRAGMA_DIAG(GCC diagnostic ignored, -W ## filter)
 Disable compiler warnings on the diagnostics filter. More...
 
#define PRAGMA_WARNING(filter)   PRAGMA_DIAG(GCC diagnostic warning, -W ## filter)
 Enable compiler warnings on the diagnostics filter. More...
 
#define PRAGMA_ERROR(filter)   PRAGMA_DIAG(GCC diagnostic error, -W ## filter)
 Treat the diagnostics filter as a compiler error. More...
 

Typedefs

typedef __int8_t s8_t
 8-bit signed integer
 
typedef __uint8_t u8_t
 8-bit unsigned integer
 
typedef __int16_t s16_t
 16-bit signed integer
 
typedef __uint16_t u16_t
 16-bit unsigned integer
 
typedef __int32_t s32_t
 32-bit signed integer
 
typedef __uint32_t u32_t
 32-bit unsigned integer
 
typedef __int64_t s64_t
 64-bit signed integer
 
typedef __uint64_t u64_t
 64-bit unsigned integer
 
typedef float f32_t
 32-bit floating-point number
 
typedef double f64_t
 64-bit floating-point number
 
typedef u8_t byte_t
 8-bit byte
 
typedef s8_t schar_t
 8-bit signed integer
 
typedef u16_t ushort_t
 16-bit unsigned integer
 
typedef s16_t sshort_t
 16-bit signed integer
 
typedef u32_t uint_t
 32-bit unsigned integer
 
typedef s32_t sint_t
 32-bit signed integer
 
typedef unsigned long ulong_t
 32/64-bit unsigned long
 
typedef signed long slong_t
 32/64-bit signed long
 
typedef u64_t ulonglong_t
 64-bit unsigned long long integer
 
typedef s64_t slonglong_t
 64-bit signed long long integer
 
typedef int bool_t
 "boolean" T/F
 

Detailed Description

RoadNarrows Robotics common configuration file.

The rnrconfig.h file provides a somewhat unified method to support various RoadNarrows supported processor architectures and host platforms.

Common typedefs, sizes, return codes, and useful utility declarations are declared.

Supported CPU archetectures:
Parameters
i386Intel i386+ family of 32-bit processors.
x86_64AMD family of 64-bit processors.
armpxaXScale PXA Arm processors.
Supported platforms:
Parameters
windowsRequires posix libraries. (see http://www.cygwin.com/)
posix linuxTested on Ubuntu and Odroid Arm
familiar linuxTested on K-Team's KoreBot embedded 2.4 linux SBC.
angstrom linuxTested on K-Team's KoreBot embedded 2.6 linux SBC.
os-xMac OS-X
Package
RoadNarrows Robotics Common Library 1
Library
librnr
File
rnr/rnrconfig.h
Author
Robin Knight (robin.nosp@m..kni.nosp@m.ght@r.nosp@m.oadn.nosp@m.arrow.nosp@m.s.co.nosp@m.m)
License
MIT
EULA
See the README and EULA files for any copyright and licensing information.

Definition in file rnrconfig.h.

Macro Definition Documentation

#define arraysize (   array)    (sizeof(array)/sizeof(array[0]))

array size, i.e. number of array entries

Parameters
arraythe array to size

Definition at line 259 of file rnrconfig.h.

Referenced by AddNewBody(), force_grow(), main(), OptsCvtArgLogLevel(), OptsNew(), PrintBody(), test_assoc(), test_config(), test_hash(), and units_shortname().

#define DO_PRAGMA (   x)

CPP pragma macro.

C99 introduces the _Pragma operator. Calling _Pragma("a b c") will produce #pragma a b c

Parameters
xThe pragma.

Definition at line 335 of file rnrconfig.h.

#define memberassign (   ctype,
  ptr,
  offset,
  val 
)    memberlvalue(ctype, ptr, offset) = (ctype)val

member assignment

Parameters
ctypelvalue type
ptrpointer type
offsetbyte offset from pointer
valvalue to assign lvalue.

Definition at line 290 of file rnrconfig.h.

#define memberlvalue (   ctype,
  ptr,
  offset 
)    *((ctype *)(ptr + offset))

member lvalue

Parameters
ctypelvalue type
ptrpointer type
offsetbyte offset from pointer

Definition at line 281 of file rnrconfig.h.

#define memberoffset (   structname,
  member 
)    (size_t)(&(((structname *)0)->member))

structure member offset (bytes)

Parameters
structnamestructure name or typedef
memberstructure member name

Definition at line 273 of file rnrconfig.h.

#define PRAGMA_DIAG (   x,
 
)    DO_PRAGMA(x #y)

CPP diagnostics pragma macro.

Note
The current Angstrom Arm GCC cross-compiler does not support diagnostics very well.
Parameters
xUnquoted front part of pragma
yQouted back part of pragma.

Definition at line 348 of file rnrconfig.h.

#define PRAGMA_ERROR (   filter)    PRAGMA_DIAG(GCC diagnostic error, -W ## filter)

Treat the diagnostics filter as a compiler error.

See also
"gcc --help=warnings" for list of filters.

Definition at line 372 of file rnrconfig.h.

#define PRAGMA_IGNORED (   filter)    PRAGMA_DIAG(GCC diagnostic ignored, -W ## filter)

Disable compiler warnings on the diagnostics filter.

See also
"gcc --help=warnings" for list of filters.

Definition at line 358 of file rnrconfig.h.

Referenced by fdisset_nowarn(), and fdset_nowarn().

#define PRAGMA_WARNING (   filter)    PRAGMA_DIAG(GCC diagnostic warning, -W ## filter)

Enable compiler warnings on the diagnostics filter.

See also
"gcc --help=warnings" for list of filters.

Definition at line 365 of file rnrconfig.h.

Referenced by fdisset_nowarn(), fdset_nowarn(), and htons_nowarn().