Example #1
0
LIB_PRIVATE
void initialize_libc_wrappers()
{
  const char *warn_msg =
    "WARNING: dmtcp_wrappers_initializing is set to '0' in the call to\n"
    "         initialize_wrappers(). This may not be a good sign. \n"
    "         Please inform dmtcp-developers if you see this message.\n\n";

  if (dmtcp_wrappers_initializing == 0) {
    _real_write(STDERR_FILENO, warn_msg, strlen(warn_msg));
    sleep(1);
    abort();
  }

  if (!_libc_wrappers_initialized) {
    FOREACH_DMTCP_WRAPPER(GET_FUNC_ADDR);
#ifdef __i386__
    /* On i386 systems, there are two pthread_create symbols. We want the one
     * with GLIBC_2.1 version. On 64-bit machines, there is only one
     * pthread_create symbol (GLIBC_2.2.5), so no worries there.
     */
    _real_func_addr[ENUM(pthread_create)] = dlvsym(RTLD_NEXT, "pthread_create",
                                                   "GLIBC_2.1");
#endif

    /* On some arm machines, the newest pthread_create has version GLIBC_2.4 */
    void *addr = dlvsym(RTLD_NEXT, "pthread_create", "GLIBC_2.4");
    if (addr != NULL) {
      _real_func_addr[ENUM(pthread_create)] = addr;
    }

    _libc_wrappers_initialized = 1;
  }
}
Example #2
0
const char * glsl_interp_qualifier_name(enum glsl_interp_qualifier qual)
{
   static const char *names[] = {
      ENUM(INTERP_QUALIFIER_NONE),
      ENUM(INTERP_QUALIFIER_SMOOTH),
      ENUM(INTERP_QUALIFIER_FLAT),
      ENUM(INTERP_QUALIFIER_NOPERSPECTIVE),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == INTERP_QUALIFIER_COUNT);
   return NAME(qual);
}
Example #3
0
const char *
glsl_interp_mode_name(enum glsl_interp_mode qual)
{
   static const char *names[] = {
      ENUM(INTERP_MODE_NONE),
      ENUM(INTERP_MODE_SMOOTH),
      ENUM(INTERP_MODE_FLAT),
      ENUM(INTERP_MODE_NOPERSPECTIVE),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == INTERP_MODE_COUNT);
   return NAME(qual);
}
Example #4
0
static int WindowHint(lua_State *L)
    {
    int target = checktarget(L, 1);
    switch(target)
        {
        case GLFW_RESIZABLE:
        case GLFW_VISIBLE:
        case GLFW_DECORATED:
        case GLFW_FOCUSED:
        case GLFW_AUTO_ICONIFY:
        case GLFW_FLOATING:
        case GLFW_MAXIMIZED:
        case GLFW_CENTER_CURSOR:
        case GLFW_TRANSPARENT_FRAMEBUFFER:
        case GLFW_HOVERED:
        case GLFW_FOCUS_ON_SHOW:
        case GLFW_SCALE_TO_MONITOR: return Boolean(L, target);
        case GLFW_RED_BITS:
        case GLFW_GREEN_BITS:
        case GLFW_BLUE_BITS:
        case GLFW_ALPHA_BITS:
        case GLFW_DEPTH_BITS:
        case GLFW_STENCIL_BITS:
        case GLFW_ACCUM_RED_BITS:
        case GLFW_ACCUM_GREEN_BITS:
        case GLFW_ACCUM_BLUE_BITS:
        case GLFW_ACCUM_ALPHA_BITS:
        case GLFW_AUX_BUFFERS:
        case GLFW_SAMPLES:
        case GLFW_REFRESH_RATE: return Integer(L, target);
        case GLFW_STEREO:
        case GLFW_SRGB_CAPABLE:
        case GLFW_DOUBLEBUFFER: return Boolean(L, target);
        case GLFW_CLIENT_API: ENUM(L, target, checkapi);
        case GLFW_CONTEXT_CREATION_API: ENUM(L, target, checkcontextcreationapi);
        case GLFW_CONTEXT_VERSION_MAJOR:
        case GLFW_CONTEXT_VERSION_MINOR: return Integer(L, target);
        case GLFW_CONTEXT_ROBUSTNESS: ENUM(L, target, checkrobustness);
        case GLFW_CONTEXT_RELEASE_BEHAVIOR: ENUM(L, target, checkreleasebehavior);
        case GLFW_OPENGL_FORWARD_COMPAT:
        case GLFW_OPENGL_DEBUG_CONTEXT: return Boolean(L, target);
        case GLFW_OPENGL_PROFILE: ENUM(L, target, checkprofile);
        case GLFW_X11_CLASS_NAME:
        case GLFW_X11_INSTANCE_NAME: return String(L, target);
        default:
            return luaL_error(L, "invalid target '%s'", lua_tostring(L, 1));
        }
    return 0;
    }
Example #5
0
static void
initialize_libc_wrappers()
{
  FOREACH_DMTCP_WRAPPER(GET_FUNC_ADDR);
#ifdef __i386__

  /* On i386 systems, there are two pthread_create symbols. We want the one
   * with GLIBC_2.1 version. On 64-bit machines, there is only one
   * pthread_create symbol (GLIBC_2.2.5), so no worries there.
   */
  _real_func_addr[ENUM(pthread_create)] = dmtcp_dlvsym(RTLD_NEXT,
                                                       "pthread_create",
                                                       "GLIBC_2.1");
#endif

  /* On some arm machines, the newest pthread_create has version GLIBC_2.4 */
  void *addr = dmtcp_dlvsym(RTLD_NEXT, "pthread_create", "GLIBC_2.4");
  if (addr != NULL) {
    _real_func_addr[ENUM(pthread_create)] = addr;
  }
}
Example #6
0
const char * gl_shader_stage_name(gl_shader_stage stage)
{
   static const char *names[] = {
      ENUM(MESA_SHADER_VERTEX),
      ENUM(MESA_SHADER_TESS_CTRL),
      ENUM(MESA_SHADER_TESS_EVAL),
      ENUM(MESA_SHADER_GEOMETRY),
      ENUM(MESA_SHADER_FRAGMENT),
      ENUM(MESA_SHADER_COMPUTE),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == MESA_SHADER_STAGES);
   return NAME(stage);
}
Example #7
0
	long long id;
	const char *name;
};

#define TABLE(what) static struct kdbus_enum_table kdbus_table_##what[]
#define ENUM(_id) { .id=_id, .name=STRINGIFY(_id) }
#define LOOKUP(what)								\
	const char *enum_##what(long long id) {					\
		for (size_t i = 0; i < ELEMENTSOF(kdbus_table_##what); i++)	\
			if (id == kdbus_table_##what[i].id)			\
				return kdbus_table_##what[i].name;		\
		return "UNKNOWN";						\
	}

TABLE(CMD) = {
	ENUM(KDBUS_CMD_BUS_MAKE),
	ENUM(KDBUS_CMD_NS_MAKE),
	ENUM(KDBUS_CMD_EP_MAKE),
	ENUM(KDBUS_CMD_HELLO),
	ENUM(KDBUS_CMD_MSG_SEND),
	ENUM(KDBUS_CMD_MSG_RECV),
	ENUM(KDBUS_CMD_NAME_LIST),
	ENUM(KDBUS_CMD_NAME_RELEASE),
	ENUM(KDBUS_CMD_CONN_INFO),
	ENUM(KDBUS_CMD_MATCH_ADD),
	ENUM(KDBUS_CMD_MATCH_REMOVE),
	ENUM(KDBUS_CMD_MONITOR),
	ENUM(KDBUS_CMD_EP_POLICY_SET),
};
LOOKUP(CMD);
Example #8
0
const char * gl_varying_slot_name(gl_varying_slot slot)
{
   static const char *names[] = {
      ENUM(VARYING_SLOT_POS),
      ENUM(VARYING_SLOT_COL0),
      ENUM(VARYING_SLOT_COL1),
      ENUM(VARYING_SLOT_FOGC),
      ENUM(VARYING_SLOT_TEX0),
      ENUM(VARYING_SLOT_TEX1),
      ENUM(VARYING_SLOT_TEX2),
      ENUM(VARYING_SLOT_TEX3),
      ENUM(VARYING_SLOT_TEX4),
      ENUM(VARYING_SLOT_TEX5),
      ENUM(VARYING_SLOT_TEX6),
      ENUM(VARYING_SLOT_TEX7),
      ENUM(VARYING_SLOT_PSIZ),
      ENUM(VARYING_SLOT_BFC0),
      ENUM(VARYING_SLOT_BFC1),
      ENUM(VARYING_SLOT_EDGE),
      ENUM(VARYING_SLOT_CLIP_VERTEX),
      ENUM(VARYING_SLOT_CLIP_DIST0),
      ENUM(VARYING_SLOT_CLIP_DIST1),
      ENUM(VARYING_SLOT_PRIMITIVE_ID),
      ENUM(VARYING_SLOT_LAYER),
      ENUM(VARYING_SLOT_VIEWPORT),
      ENUM(VARYING_SLOT_FACE),
      ENUM(VARYING_SLOT_PNTC),
      ENUM(VARYING_SLOT_TESS_LEVEL_OUTER),
      ENUM(VARYING_SLOT_TESS_LEVEL_INNER),
      ENUM(VARYING_SLOT_VAR0),
      ENUM(VARYING_SLOT_VAR1),
      ENUM(VARYING_SLOT_VAR2),
      ENUM(VARYING_SLOT_VAR3),
      ENUM(VARYING_SLOT_VAR4),
      ENUM(VARYING_SLOT_VAR5),
      ENUM(VARYING_SLOT_VAR6),
      ENUM(VARYING_SLOT_VAR7),
      ENUM(VARYING_SLOT_VAR8),
      ENUM(VARYING_SLOT_VAR9),
      ENUM(VARYING_SLOT_VAR10),
      ENUM(VARYING_SLOT_VAR11),
      ENUM(VARYING_SLOT_VAR12),
      ENUM(VARYING_SLOT_VAR13),
      ENUM(VARYING_SLOT_VAR14),
      ENUM(VARYING_SLOT_VAR15),
      ENUM(VARYING_SLOT_VAR16),
      ENUM(VARYING_SLOT_VAR17),
      ENUM(VARYING_SLOT_VAR18),
      ENUM(VARYING_SLOT_VAR19),
      ENUM(VARYING_SLOT_VAR20),
      ENUM(VARYING_SLOT_VAR21),
      ENUM(VARYING_SLOT_VAR22),
      ENUM(VARYING_SLOT_VAR23),
      ENUM(VARYING_SLOT_VAR24),
      ENUM(VARYING_SLOT_VAR25),
      ENUM(VARYING_SLOT_VAR26),
      ENUM(VARYING_SLOT_VAR27),
      ENUM(VARYING_SLOT_VAR28),
      ENUM(VARYING_SLOT_VAR29),
      ENUM(VARYING_SLOT_VAR30),
      ENUM(VARYING_SLOT_VAR31),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == VARYING_SLOT_MAX);
   return NAME(slot);
}
Example #9
0
const char * gl_vert_attrib_name(gl_vert_attrib attrib)
{
   static const char *names[] = {
      ENUM(VERT_ATTRIB_POS),
      ENUM(VERT_ATTRIB_WEIGHT),
      ENUM(VERT_ATTRIB_NORMAL),
      ENUM(VERT_ATTRIB_COLOR0),
      ENUM(VERT_ATTRIB_COLOR1),
      ENUM(VERT_ATTRIB_FOG),
      ENUM(VERT_ATTRIB_COLOR_INDEX),
      ENUM(VERT_ATTRIB_EDGEFLAG),
      ENUM(VERT_ATTRIB_TEX0),
      ENUM(VERT_ATTRIB_TEX1),
      ENUM(VERT_ATTRIB_TEX2),
      ENUM(VERT_ATTRIB_TEX3),
      ENUM(VERT_ATTRIB_TEX4),
      ENUM(VERT_ATTRIB_TEX5),
      ENUM(VERT_ATTRIB_TEX6),
      ENUM(VERT_ATTRIB_TEX7),
      ENUM(VERT_ATTRIB_POINT_SIZE),
      ENUM(VERT_ATTRIB_GENERIC0),
      ENUM(VERT_ATTRIB_GENERIC1),
      ENUM(VERT_ATTRIB_GENERIC2),
      ENUM(VERT_ATTRIB_GENERIC3),
      ENUM(VERT_ATTRIB_GENERIC4),
      ENUM(VERT_ATTRIB_GENERIC5),
      ENUM(VERT_ATTRIB_GENERIC6),
      ENUM(VERT_ATTRIB_GENERIC7),
      ENUM(VERT_ATTRIB_GENERIC8),
      ENUM(VERT_ATTRIB_GENERIC9),
      ENUM(VERT_ATTRIB_GENERIC10),
      ENUM(VERT_ATTRIB_GENERIC11),
      ENUM(VERT_ATTRIB_GENERIC12),
      ENUM(VERT_ATTRIB_GENERIC13),
      ENUM(VERT_ATTRIB_GENERIC14),
      ENUM(VERT_ATTRIB_GENERIC15),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == VERT_ATTRIB_MAX);
   return NAME(attrib);
}
Example #10
0
const char * gl_frag_result_name(gl_frag_result result)
{
   static const char *names[] = {
      ENUM(FRAG_RESULT_DEPTH),
      ENUM(FRAG_RESULT_STENCIL),
      ENUM(FRAG_RESULT_COLOR),
      ENUM(FRAG_RESULT_SAMPLE_MASK),
      ENUM(FRAG_RESULT_DATA0),
      ENUM(FRAG_RESULT_DATA1),
      ENUM(FRAG_RESULT_DATA2),
      ENUM(FRAG_RESULT_DATA3),
      ENUM(FRAG_RESULT_DATA4),
      ENUM(FRAG_RESULT_DATA5),
      ENUM(FRAG_RESULT_DATA6),
      ENUM(FRAG_RESULT_DATA7),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == FRAG_RESULT_MAX);
   return NAME(result);
}
Example #11
0
const char * gl_system_value_name(gl_system_value sysval)
{
   static const char *names[] = {
     ENUM(SYSTEM_VALUE_VERTEX_ID),
     ENUM(SYSTEM_VALUE_INSTANCE_ID),
     ENUM(SYSTEM_VALUE_VERTEX_ID_ZERO_BASE),
     ENUM(SYSTEM_VALUE_BASE_VERTEX),
     ENUM(SYSTEM_VALUE_INVOCATION_ID),
     ENUM(SYSTEM_VALUE_FRONT_FACE),
     ENUM(SYSTEM_VALUE_SAMPLE_ID),
     ENUM(SYSTEM_VALUE_SAMPLE_POS),
     ENUM(SYSTEM_VALUE_SAMPLE_MASK_IN),
     ENUM(SYSTEM_VALUE_TESS_COORD),
     ENUM(SYSTEM_VALUE_VERTICES_IN),
     ENUM(SYSTEM_VALUE_PRIMITIVE_ID),
     ENUM(SYSTEM_VALUE_TESS_LEVEL_OUTER),
     ENUM(SYSTEM_VALUE_TESS_LEVEL_INNER),
     ENUM(SYSTEM_VALUE_LOCAL_INVOCATION_ID),
     ENUM(SYSTEM_VALUE_WORK_GROUP_ID),
     ENUM(SYSTEM_VALUE_NUM_WORK_GROUPS),
     ENUM(SYSTEM_VALUE_VERTEX_CNT),
   };
   STATIC_ASSERT(ARRAY_SIZE(names) == SYSTEM_VALUE_MAX);
   return NAME(sysval);
}
Example #12
0
	const char *name;
};

#define TABLE(what) static struct kdbus_enum_table kdbus_table_##what[]
#define ENUM(_id) { .id = _id, .name = STRINGIFY(_id) }
#define LOOKUP(what)							\
	const char *enum_##what(long long id)				\
	{								\
		for (size_t i = 0; i < ELEMENTSOF(kdbus_table_##what); i++) \
			if (id == kdbus_table_##what[i].id)		\
				return kdbus_table_##what[i].name;	\
		return "UNKNOWN";					\
	}

TABLE(CMD) = {
	ENUM(KDBUS_CMD_BUS_MAKE),
	ENUM(KDBUS_CMD_ENDPOINT_MAKE),
	ENUM(KDBUS_CMD_HELLO),
	ENUM(KDBUS_CMD_SEND),
	ENUM(KDBUS_CMD_RECV),
	ENUM(KDBUS_CMD_LIST),
	ENUM(KDBUS_CMD_NAME_RELEASE),
	ENUM(KDBUS_CMD_CONN_INFO),
	ENUM(KDBUS_CMD_MATCH_ADD),
	ENUM(KDBUS_CMD_MATCH_REMOVE),
};
LOOKUP(CMD);

TABLE(MSG) = {
	ENUM(_KDBUS_ITEM_NULL),
	ENUM(KDBUS_ITEM_PAYLOAD_VEC),
Example #13
0
static void
parse_setting (PinPointPoint *point,
               const char    *setting)
{
    /* C Preprocessor macros implemeting a mini language for interpreting
     * pinpoint key=value pairs
     */

#define START_PARSER if (0) {
#define DEFAULT      } else {
#define END_PARSER   }
#define IF_PREFIX(prefix) } else if (g_str_has_prefix (setting, prefix)) {
#define IF_EQUAL(string) } else if (g_str_equal (setting, string)) {
#define STRING  g_intern_string (strchr (setting, '=') + 1)
#define INT     atoi (strchr (setting, '=') + 1)
#define FLOAT   g_ascii_strtod (strchr (setting, '=') + 1, NULL)
#define RESOLUTION(r) parse_resolution (&r, strchr (setting, '=') + 1)
#define ENUM(r,t,s) \
  do { \
      int _i; \
      EnumDescription *_d = t##_desc; \
      r = _d[0].value; \
      for (_i = 0; _d[_i].name; _i++) \
        if (g_strcmp0 (_d[_i].name, s) == 0) \
          r = _d[_i].value; \
  } while (0)

    START_PARSER
    IF_PREFIX("stage-color=") point->stage_color = STRING;
    IF_PREFIX("font=")        point->font = STRING;
    IF_PREFIX("text-color=")  point->text_color = STRING;
    IF_PREFIX("text-align=")  ENUM(point->text_align, PPTextAlign, STRING);
    IF_PREFIX("shading-color=") point->shading_color = STRING;
    IF_PREFIX("shading-opacity=") point->shading_opacity = FLOAT;
    IF_PREFIX("duration=")   point->duration = FLOAT;
    IF_PREFIX("command=")    point->command = STRING;
    IF_PREFIX("transition=") point->transition = STRING;
    IF_PREFIX("camera-framerate=")  point->camera_framerate = INT;
    IF_PREFIX("camera-resolution=") RESOLUTION (point->camera_resolution);
    IF_EQUAL("fill")         point->bg_scale = PP_BG_FILL;
    IF_EQUAL("fit")          point->bg_scale = PP_BG_FIT;
    IF_EQUAL("stretch")      point->bg_scale = PP_BG_STRETCH;
    IF_EQUAL("unscaled")     point->bg_scale = PP_BG_UNSCALED;
    IF_EQUAL("center")       point->position = CLUTTER_GRAVITY_CENTER;
    IF_EQUAL("top")          point->position = CLUTTER_GRAVITY_NORTH;
    IF_EQUAL("bottom")       point->position = CLUTTER_GRAVITY_SOUTH;
    IF_EQUAL("left")         point->position = CLUTTER_GRAVITY_WEST;
    IF_EQUAL("right")        point->position = CLUTTER_GRAVITY_EAST;
    IF_EQUAL("top-left")     point->position = CLUTTER_GRAVITY_NORTH_WEST;
    IF_EQUAL("top-right")    point->position = CLUTTER_GRAVITY_NORTH_EAST;
    IF_EQUAL("bottom-left")  point->position = CLUTTER_GRAVITY_SOUTH_WEST;
    IF_EQUAL("bottom-right") point->position = CLUTTER_GRAVITY_SOUTH_EAST;
    IF_EQUAL("no-markup")    point->use_markup = FALSE;
    IF_EQUAL("markup")       point->use_markup = TRUE;
    DEFAULT                  point->bg = g_intern_string (setting);
    END_PARSER

    /* undefine the overrides, returning us to regular C */
#undef START_PARSER
#undef END_PARSER
#undef DEFAULT
#undef IF_PREFIX
#undef IF_EQUAL
#undef FLOAT
#undef STRING
#undef INT
#undef ENUM
#undef RESOLUTION
}
Example #14
0
SP_CALL connection_error(sp_session *session, sp_error error) {
	TP1(Error, SESSION, Session::connection_error, ENUM(Error, error));
}
Example #15
0
SP_CALL logged_in(sp_session *session, sp_error error) {
	TP1(Error, SESSION, Session::logged_in, ENUM(Error, error));
}