Sha256: 82f1d9ab670646aeebd5f6372d90fc428c8ef9b509a996ec297a89aa46525bda

Contents?: true

Size: 1.24 KB

Versions: 4

Compression:

Stored size: 1.24 KB

Contents

#ifndef _LIBSTAPSDT_H
#define _LIBSTAPSDT_H
#define MAX_ARGUMENTS 6

typedef enum {
  noError                 = -1,
  elfCreationError        = 0,
  tmpCreationError        = 1,
  sharedLibraryOpenError  = 2,
  symbolLoadingError      = 3,
  sharedLibraryCloseError = 4,
} SDTError_t;

typedef enum {
  noarg = 0,
  uint8 = 1,
  int8 = -1,
  uint16 = 2,
  int16 = -2,
  uint32 = 4,
  int32 = -4,
  uint64 = 8,
  int64 = -8,
} ArgType_t;

struct SDTProvider;

typedef struct SDTProbe {
  char *name;
  ArgType_t argFmt[MAX_ARGUMENTS];
  void *_fire;
  struct SDTProvider *provider;
  int argCount;
} SDTProbe_t;

typedef struct SDTProbeList_ {
  SDTProbe_t probe;
  struct SDTProbeList_ *next;
} SDTProbeList_t;

typedef struct SDTProvider {
  char *name;
  SDTProbeList_t *probes;
  SDTError_t errno;
  char *error;

  // private
  void *_handle;
  char *_filename;
  int _memfd;
} SDTProvider_t;

SDTProvider_t *providerInit(const char *name);

SDTProbe_t *providerAddProbe(SDTProvider_t *provider, const char *name, int argCount, ...);

int providerLoad(SDTProvider_t *provider);

int providerUnload(SDTProvider_t *provider);

void providerDestroy(SDTProvider_t *provider);

void probeFire(SDTProbe_t *probe, ...);

int probeIsEnabled(SDTProbe_t *probe);

#endif

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-static-tracing-0.0.16 ext/ruby-static-tracing/lib/libstapsdt/src/libstapsdt.h
ruby-static-tracing-0.0.15 ext/ruby-static-tracing/lib/libstapsdt/src/libstapsdt.h
ruby-static-tracing-0.0.14 ext/ruby-static-tracing/lib/libstapsdt/src/libstapsdt.h
ruby-static-tracing-0.0.13 ext/ruby-static-tracing/lib/libstapsdt/src/libstapsdt.h