ns-3 Direct Code Execution
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
libc.cc File Reference
#include "libc.h"
#include "libc-ns3.h"
#include "libc-globals.h"
+ Include dependency graph for libc.cc:

Go to the source code of this file.

Macros

#define _ARGS_0()
#define _ARGS_1(X0)   a0
#define _ARGS_2(X0, X1)   a0, a1
#define _ARGS_3(X0, X1, X2)   a0, a1, a2
#define _ARGS_4(X0, X1, X2, X3)   a0, a1, a2, a3
#define _ARGS_5(X0, X1, X2, X3, X4)   a0, a1, a2, a3, a4
#define _c99_count1(...)   _c99_count2 (__VA_ARGS__,10,9,8,7,6,5,4,3,2,1,0)
#define _c99_count2(_, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, n,...)   n
#define ARGS(...)   CAT (_ARGS_,c99_count (__VA_ARGS__)) (__VA_ARGS__)
#define c99_count(...)   _c99_count1 (, ## __VA_ARGS__) /* If only ## worked.*/
#define CAT(a,...)   PRIMITIVE_CAT (a, __VA_ARGS__)
#define DCE(name)   GCC_BUILTIN_APPLY (name,name)
#define DCE_EXPLICIT(name, rtype,...)
#define DCE_WITH_ALIAS(name)
#define DCE_WITH_ALIAS2(name, internal)
#define DCET(rtype, name)   GCC_BUILTIN_APPLYT (rtype,name,name)
#define FULL_ARGS(...)   CAT (FULL_ARGS_,c99_count (__VA_ARGS__)) (__VA_ARGS__)
#define FULL_ARGS_0()
#define FULL_ARGS_1(X0)   X0 a0
#define FULL_ARGS_2(X0, X1)   X0 a0, X1 a1
#define FULL_ARGS_3(X0, X1, X2)   X0 a0, X1 a1, X2 a2
#define FULL_ARGS_4(X0, X1, X2, X3)   X0 a0, X1 a1, X2 a2, X3 a3
#define FULL_ARGS_5(X0, X1, X2, X3, X4)   X0 a0, X1 a1, X2 a2, X3 a3, X4 a4
#define GCC_BUILTIN_APPLY(export_symbol, func_to_call)
#define GCC_BUILTIN_APPLYT(rtype, export_symbol, func_to_call)
#define NATIVE   DCE
#define NATIVE_WITH_ALIAS   DCE_WITH_ALIAS
#define NATIVE_WITH_ALIAS2   DCE_WITH_ALIAS2
#define NATIVET   DCET
#define PRIMITIVE_CAT(a,...)   a ## __VA_ARGS__
#define weak_alias(name, aliasname)   extern __typeof (name) aliasname __attribute__ ((weak, alias (# name)))

Functions

void LIBSETUP (const struct Libc *fn)
int snprintf (char *s, size_t si, const char *f,...)
char * strpbrk (const char *s, const char *a)
char * strstr (const char *u, const char *d)
int vsnprintf (char *s, size_t si, const char *f, va_list v)

Variables

struct Libc g_libc

Macro Definition Documentation

#define _ARGS_0 ( )

Definition at line 56 of file libc.cc.

#define _ARGS_1 (   X0)    a0

Definition at line 57 of file libc.cc.

#define _ARGS_2 (   X0,
  X1 
)    a0, a1

Definition at line 58 of file libc.cc.

#define _ARGS_3 (   X0,
  X1,
  X2 
)    a0, a1, a2

Definition at line 59 of file libc.cc.

#define _ARGS_4 (   X0,
  X1,
  X2,
  X3 
)    a0, a1, a2, a3

Definition at line 60 of file libc.cc.

#define _ARGS_5 (   X0,
  X1,
  X2,
  X3,
  X4 
)    a0, a1, a2, a3, a4

Definition at line 61 of file libc.cc.

#define _c99_count1 (   ...)    _c99_count2 (__VA_ARGS__,10,9,8,7,6,5,4,3,2,1,0)

Definition at line 46 of file libc.cc.

#define _c99_count2 (   _,
  x0,
  x1,
  x2,
  x3,
  x4,
  x5,
  x6,
  x7,
  x8,
  x9,
  n,
  ... 
)    n

Definition at line 47 of file libc.cc.

#define ARGS (   ...)    CAT (_ARGS_,c99_count (__VA_ARGS__)) (__VA_ARGS__)

Definition at line 67 of file libc.cc.

#define c99_count (   ...)    _c99_count1 (, ## __VA_ARGS__) /* If only ## worked.*/

Definition at line 45 of file libc.cc.

#define CAT (   a,
  ... 
)    PRIMITIVE_CAT (a, __VA_ARGS__)

Definition at line 63 of file libc.cc.

#define DCE (   name)    GCC_BUILTIN_APPLY (name,name)

Definition at line 37 of file libc.cc.

#define DCE_EXPLICIT (   name,
  rtype,
  ... 
)
Value:
rtype name (FULL_ARGS (__VA_ARGS__)) \
{ \
return g_libc.name ## _fn (ARGS (__VA_ARGS__)); \
}

Definition at line 70 of file libc.cc.

#define DCE_WITH_ALIAS (   name)
Value:
GCC_BUILTIN_APPLY (__ ## name,name) \
weak_alias (__ ## name, name);

Definition at line 76 of file libc.cc.

#define DCE_WITH_ALIAS2 (   name,
  internal 
)
Value:
GCC_BUILTIN_APPLY (internal,name) \
weak_alias (internal, name);

Definition at line 80 of file libc.cc.

#define DCET (   rtype,
  name 
)    GCC_BUILTIN_APPLYT (rtype,name,name)

Definition at line 40 of file libc.cc.

#define FULL_ARGS (   ...)    CAT (FULL_ARGS_,c99_count (__VA_ARGS__)) (__VA_ARGS__)

Definition at line 66 of file libc.cc.

#define FULL_ARGS_0 ( )

Definition at line 49 of file libc.cc.

#define FULL_ARGS_1 (   X0)    X0 a0

Definition at line 50 of file libc.cc.

#define FULL_ARGS_2 (   X0,
  X1 
)    X0 a0, X1 a1

Definition at line 51 of file libc.cc.

#define FULL_ARGS_3 (   X0,
  X1,
  X2 
)    X0 a0, X1 a1, X2 a2

Definition at line 52 of file libc.cc.

#define FULL_ARGS_4 (   X0,
  X1,
  X2,
  X3 
)    X0 a0, X1 a1, X2 a2, X3 a3

Definition at line 53 of file libc.cc.

#define FULL_ARGS_5 (   X0,
  X1,
  X2,
  X3,
  X4 
)    X0 a0, X1 a1, X2 a2, X3 a3, X4 a4

Definition at line 54 of file libc.cc.

#define GCC_BUILTIN_APPLY (   export_symbol,
  func_to_call 
)
Value:
void export_symbol (...) { \
void *args = __builtin_apply_args (); \
void *result = __builtin_apply (g_libc.func_to_call ## _fn, args, 128); \
__builtin_return (result); \
}

Definition at line 22 of file libc.cc.

#define GCC_BUILTIN_APPLYT (   rtype,
  export_symbol,
  func_to_call 
)
Value:
rtype export_symbol (...) { \
void *args = __builtin_apply_args (); \
void *result = __builtin_apply ((void (*) (...)) g_libc.func_to_call ## _fn, args, 128); \
__builtin_return (result); \
}

Definition at line 29 of file libc.cc.

#define NATIVE   DCE

Definition at line 17 of file libc.cc.

#define NATIVE_WITH_ALIAS   DCE_WITH_ALIAS

Definition at line 19 of file libc.cc.

#define NATIVE_WITH_ALIAS2   DCE_WITH_ALIAS2

Definition at line 20 of file libc.cc.

#define NATIVET   DCET

Definition at line 18 of file libc.cc.

#define PRIMITIVE_CAT (   a,
  ... 
)    a ## __VA_ARGS__

Definition at line 64 of file libc.cc.

#define weak_alias (   name,
  aliasname 
)    extern __typeof (name) aliasname __attribute__ ((weak, alias (# name)))

Definition at line 7 of file libc.cc.

Function Documentation

void LIBSETUP ( const struct Libc fn)

Definition at line 148 of file libc.cc.

References g_libc, and setup_global_variables().

+ Here is the call graph for this function:

int snprintf ( char *  s,
size_t  si,
const char *  f,
  ... 
)

Definition at line 132 of file libc.cc.

References g_libc, and Libc::vsnprintf_fn.

Referenced by dce_getnameinfo().

+ Here is the caller graph for this function:

char* strpbrk ( const char *  s,
const char *  a 
)

Definition at line 122 of file libc.cc.

References g_libc.

Referenced by dce_strpbrk().

+ Here is the caller graph for this function:

char* strstr ( const char *  u,
const char *  d 
)

Definition at line 127 of file libc.cc.

References g_libc, and Libc::strstr_fn.

Referenced by dce_strstr().

+ Here is the caller graph for this function:

int vsnprintf ( char *  s,
size_t  si,
const char *  f,
va_list  v 
)

Definition at line 141 of file libc.cc.

References g_libc, and Libc::vsnprintf_fn.

Referenced by dce___snprintf_chk(), dce___vsnprintf_chk(), and dce_vsnprintf().

+ Here is the caller graph for this function:

Variable Documentation

struct Libc g_libc

Definition at line 4 of file libc.cc.

Referenced by LIBSETUP(), snprintf(), strpbrk(), strstr(), and vsnprintf().