libdatadog 14.3.1.1.0-aarch64-linux → 16.0.1.1.0-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +453 -21
  4. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +403 -84
  6. data/vendor/libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +811 -0
  7. data/vendor/libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +123 -0
  8. data/vendor/libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +61 -0
  9. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +73 -0
  10. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +453 -21
  12. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  13. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +403 -84
  14. data/vendor/libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +811 -0
  15. data/vendor/libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +123 -0
  16. data/vendor/libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +61 -0
  17. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/profiling.h +73 -0
  18. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  19. metadata +28 -26
  20. data/vendor/libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -444
  21. data/vendor/libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -209
  22. data/vendor/libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +0 -444
  23. data/vendor/libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -209
  24. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  25. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  26. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  27. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  28. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  29. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  30. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  31. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  32. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
  33. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
@@ -458,6 +458,10 @@ typedef struct ddog_prof_Period {
458
458
  int64_t value;
459
459
  } ddog_prof_Period;
460
460
 
461
+ typedef struct ddog_prof_ManagedStringStorage {
462
+ const void *inner;
463
+ } ddog_prof_ManagedStringStorage;
464
+
461
465
  /**
462
466
  * A generic result type for when a profiling operation may fail, but there's
463
467
  * nothing to return in the case of success.
@@ -483,6 +487,10 @@ typedef struct ddog_prof_Profile_Result {
483
487
  };
484
488
  } ddog_prof_Profile_Result;
485
489
 
490
+ typedef struct ddog_prof_ManagedStringId {
491
+ uint32_t value;
492
+ } ddog_prof_ManagedStringId;
493
+
486
494
  typedef struct ddog_prof_Mapping {
487
495
  /**
488
496
  * Address at which the binary (or DLL) is loaded into memory.
@@ -502,12 +510,14 @@ typedef struct ddog_prof_Mapping {
502
510
  * abstractions like "[vdso]".
503
511
  */
504
512
  ddog_CharSlice filename;
513
+ struct ddog_prof_ManagedStringId filename_id;
505
514
  /**
506
515
  * A string that uniquely identifies a particular program version
507
516
  * with high probability. E.g., for binaries generated by GNU tools,
508
517
  * it could be the contents of the .note.gnu.build-id field.
509
518
  */
510
519
  ddog_CharSlice build_id;
520
+ struct ddog_prof_ManagedStringId build_id_id;
511
521
  } ddog_prof_Mapping;
512
522
 
513
523
  typedef struct ddog_prof_Function {
@@ -515,15 +525,18 @@ typedef struct ddog_prof_Function {
515
525
  * Name of the function, in human-readable form if available.
516
526
  */
517
527
  ddog_CharSlice name;
528
+ struct ddog_prof_ManagedStringId name_id;
518
529
  /**
519
530
  * Name of the function, as identified by the system.
520
531
  * For instance, it can be a C++ mangled name.
521
532
  */
522
533
  ddog_CharSlice system_name;
534
+ struct ddog_prof_ManagedStringId system_name_id;
523
535
  /**
524
536
  * Source file containing the function.
525
537
  */
526
538
  ddog_CharSlice filename;
539
+ struct ddog_prof_ManagedStringId filename_id;
527
540
  /**
528
541
  * Line number in source file.
529
542
  */
@@ -577,10 +590,12 @@ typedef struct ddog_Slice_I64 {
577
590
 
578
591
  typedef struct ddog_prof_Label {
579
592
  ddog_CharSlice key;
593
+ struct ddog_prof_ManagedStringId key_id;
580
594
  /**
581
595
  * At most one of the following must be present
582
596
  */
583
597
  ddog_CharSlice str;
598
+ struct ddog_prof_ManagedStringId str_id;
584
599
  int64_t num;
585
600
  /**
586
601
  * Should only be present when num is present.
@@ -592,6 +607,7 @@ typedef struct ddog_prof_Label {
592
607
  * and apply appropriate unit conversions to these.
593
608
  */
594
609
  ddog_CharSlice num_unit;
610
+ struct ddog_prof_ManagedStringId num_unit_id;
595
611
  } ddog_prof_Label;
596
612
 
597
613
  typedef struct ddog_prof_Slice_Label {
@@ -667,6 +683,85 @@ typedef struct ddog_prof_Profile_SerializeResult {
667
683
  };
668
684
  } ddog_prof_Profile_SerializeResult;
669
685
 
686
+ typedef enum ddog_prof_ManagedStringStorageNewResult_Tag {
687
+ DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_OK,
688
+ DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_ERR,
689
+ } ddog_prof_ManagedStringStorageNewResult_Tag;
690
+
691
+ typedef struct ddog_prof_ManagedStringStorageNewResult {
692
+ ddog_prof_ManagedStringStorageNewResult_Tag tag;
693
+ union {
694
+ struct {
695
+ struct ddog_prof_ManagedStringStorage ok;
696
+ };
697
+ struct {
698
+ struct ddog_Error err;
699
+ };
700
+ };
701
+ } ddog_prof_ManagedStringStorageNewResult;
702
+
703
+ typedef enum ddog_prof_ManagedStringStorageInternResult_Tag {
704
+ DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_OK,
705
+ DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_ERR,
706
+ } ddog_prof_ManagedStringStorageInternResult_Tag;
707
+
708
+ typedef struct ddog_prof_ManagedStringStorageInternResult {
709
+ ddog_prof_ManagedStringStorageInternResult_Tag tag;
710
+ union {
711
+ struct {
712
+ struct ddog_prof_ManagedStringId ok;
713
+ };
714
+ struct {
715
+ struct ddog_Error err;
716
+ };
717
+ };
718
+ } ddog_prof_ManagedStringStorageInternResult;
719
+
720
+ typedef struct ddog_prof_Slice_CharSlice {
721
+ /**
722
+ * Should be non-null and suitably aligned for the underlying type. It is
723
+ * allowed but not recommended for the pointer to be null when the len is
724
+ * zero.
725
+ */
726
+ const ddog_CharSlice *ptr;
727
+ /**
728
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
729
+ * than or equal to [isize::MAX].
730
+ */
731
+ uintptr_t len;
732
+ } ddog_prof_Slice_CharSlice;
733
+
734
+ typedef struct ddog_prof_Slice_ManagedStringId {
735
+ /**
736
+ * Should be non-null and suitably aligned for the underlying type. It is
737
+ * allowed but not recommended for the pointer to be null when the len is
738
+ * zero.
739
+ */
740
+ const struct ddog_prof_ManagedStringId *ptr;
741
+ /**
742
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
743
+ * than or equal to [isize::MAX].
744
+ */
745
+ uintptr_t len;
746
+ } ddog_prof_Slice_ManagedStringId;
747
+
748
+ typedef enum ddog_StringWrapperResult_Tag {
749
+ DDOG_STRING_WRAPPER_RESULT_OK,
750
+ DDOG_STRING_WRAPPER_RESULT_ERR,
751
+ } ddog_StringWrapperResult_Tag;
752
+
753
+ typedef struct ddog_StringWrapperResult {
754
+ ddog_StringWrapperResult_Tag tag;
755
+ union {
756
+ struct {
757
+ struct ddog_StringWrapper ok;
758
+ };
759
+ struct {
760
+ struct ddog_Error err;
761
+ };
762
+ };
763
+ } ddog_StringWrapperResult;
764
+
670
765
  typedef enum ddog_ConfigurationOrigin {
671
766
  DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
672
767
  DDOG_CONFIGURATION_ORIGIN_CODE,
@@ -755,16 +850,29 @@ typedef struct ddog_ContextKey {
755
850
  enum ddog_MetricType _1;
756
851
  } ddog_ContextKey;
757
852
 
853
+ typedef enum ddog_crasht_BuildIdType {
854
+ DDOG_CRASHT_BUILD_ID_TYPE_GNU,
855
+ DDOG_CRASHT_BUILD_ID_TYPE_GO,
856
+ DDOG_CRASHT_BUILD_ID_TYPE_PDB,
857
+ DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
858
+ } ddog_crasht_BuildIdType;
859
+
758
860
  typedef enum ddog_crasht_DemangleOptions {
759
861
  DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
760
862
  DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
761
863
  } ddog_crasht_DemangleOptions;
762
864
 
763
- typedef enum ddog_crasht_NormalizedAddressTypes {
764
- DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_NONE = 0,
765
- DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_ELF,
766
- DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_PDB,
767
- } ddog_crasht_NormalizedAddressTypes;
865
+ typedef enum ddog_crasht_ErrorKind {
866
+ DDOG_CRASHT_ERROR_KIND_PANIC,
867
+ DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
868
+ DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
869
+ } ddog_crasht_ErrorKind;
870
+
871
+ typedef enum ddog_crasht_FileType {
872
+ DDOG_CRASHT_FILE_TYPE_APK,
873
+ DDOG_CRASHT_FILE_TYPE_ELF,
874
+ DDOG_CRASHT_FILE_TYPE_PE,
875
+ } ddog_crasht_FileType;
768
876
 
769
877
  /**
770
878
  * This enum represents operations a the tracked library might be engaged in.
@@ -789,6 +897,42 @@ typedef enum ddog_crasht_OpTypes {
789
897
  DDOG_CRASHT_OP_TYPES_SIZE,
790
898
  } ddog_crasht_OpTypes;
791
899
 
900
+ /**
901
+ * See https://man7.org/linux/man-pages/man2/sigaction.2.html
902
+ */
903
+ typedef enum ddog_crasht_SiCodes {
904
+ DDOG_CRASHT_SI_CODES_BUS_ADRALN,
905
+ DDOG_CRASHT_SI_CODES_BUS_ADRERR,
906
+ DDOG_CRASHT_SI_CODES_BUS_MCEERR_AO,
907
+ DDOG_CRASHT_SI_CODES_BUS_MCEERR_AR,
908
+ DDOG_CRASHT_SI_CODES_BUS_OBJERR,
909
+ DDOG_CRASHT_SI_CODES_SEGV_ACCERR,
910
+ DDOG_CRASHT_SI_CODES_SEGV_BNDERR,
911
+ DDOG_CRASHT_SI_CODES_SEGV_MAPERR,
912
+ DDOG_CRASHT_SI_CODES_SEGV_PKUERR,
913
+ DDOG_CRASHT_SI_CODES_SI_ASYNCIO,
914
+ DDOG_CRASHT_SI_CODES_SI_KERNEL,
915
+ DDOG_CRASHT_SI_CODES_SI_MESGQ,
916
+ DDOG_CRASHT_SI_CODES_SI_QUEUE,
917
+ DDOG_CRASHT_SI_CODES_SI_SIGIO,
918
+ DDOG_CRASHT_SI_CODES_SI_TIMER,
919
+ DDOG_CRASHT_SI_CODES_SI_TKILL,
920
+ DDOG_CRASHT_SI_CODES_SI_USER,
921
+ DDOG_CRASHT_SI_CODES_SYS_SECCOMP,
922
+ DDOG_CRASHT_SI_CODES_UNKNOWN,
923
+ } ddog_crasht_SiCodes;
924
+
925
+ /**
926
+ * See https://man7.org/linux/man-pages/man7/signal.7.html
927
+ */
928
+ typedef enum ddog_crasht_SignalNames {
929
+ DDOG_CRASHT_SIGNAL_NAMES_SIGABRT,
930
+ DDOG_CRASHT_SIGNAL_NAMES_SIGBUS,
931
+ DDOG_CRASHT_SIGNAL_NAMES_SIGSEGV,
932
+ DDOG_CRASHT_SIGNAL_NAMES_SIGSYS,
933
+ DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
934
+ } ddog_crasht_SignalNames;
935
+
792
936
  /**
793
937
  * Stacktrace collection occurs in the context of a crashing process.
794
938
  * If the stack is sufficiently corruputed, it is possible (but unlikely),
@@ -806,17 +950,25 @@ typedef enum ddog_crasht_StacktraceCollection {
806
950
  DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
807
951
  } ddog_crasht_StacktraceCollection;
808
952
 
953
+ typedef struct ddog_crasht_CrashInfo ddog_crasht_CrashInfo;
954
+
955
+ typedef struct ddog_crasht_CrashInfoBuilder ddog_crasht_CrashInfoBuilder;
956
+
957
+ typedef struct ddog_crasht_StackFrame ddog_crasht_StackFrame;
958
+
959
+ typedef struct ddog_crasht_StackTrace ddog_crasht_StackTrace;
960
+
809
961
  /**
810
- * A generic result type for when a crashtracking operation may fail,
962
+ * A generic result type for when an operation may fail,
811
963
  * but there's nothing to return in the case of success.
812
964
  */
813
- typedef enum ddog_crasht_Result_Tag {
814
- DDOG_CRASHT_RESULT_OK,
815
- DDOG_CRASHT_RESULT_ERR,
816
- } ddog_crasht_Result_Tag;
965
+ typedef enum ddog_VoidResult_Tag {
966
+ DDOG_VOID_RESULT_OK,
967
+ DDOG_VOID_RESULT_ERR,
968
+ } ddog_VoidResult_Tag;
817
969
 
818
- typedef struct ddog_crasht_Result {
819
- ddog_crasht_Result_Tag tag;
970
+ typedef struct ddog_VoidResult {
971
+ ddog_VoidResult_Tag tag;
820
972
  union {
821
973
  struct {
822
974
  /**
@@ -829,7 +981,7 @@ typedef struct ddog_crasht_Result {
829
981
  struct ddog_Error err;
830
982
  };
831
983
  };
832
- } ddog_crasht_Result;
984
+ } ddog_VoidResult;
833
985
 
834
986
  typedef struct ddog_crasht_Slice_CharSlice {
835
987
  /**
@@ -910,13 +1062,17 @@ typedef struct ddog_crasht_Metadata {
910
1062
  const struct ddog_Vec_Tag *tags;
911
1063
  } ddog_crasht_Metadata;
912
1064
 
913
- typedef enum ddog_crasht_UsizeResult_Tag {
914
- DDOG_CRASHT_USIZE_RESULT_OK,
915
- DDOG_CRASHT_USIZE_RESULT_ERR,
916
- } ddog_crasht_UsizeResult_Tag;
1065
+ /**
1066
+ * A generic result type for when an operation may fail,
1067
+ * or may return <T> in case of success.
1068
+ */
1069
+ typedef enum ddog_crasht_Result_Usize_Tag {
1070
+ DDOG_CRASHT_RESULT_USIZE_OK_USIZE,
1071
+ DDOG_CRASHT_RESULT_USIZE_ERR_USIZE,
1072
+ } ddog_crasht_Result_Usize_Tag;
917
1073
 
918
- typedef struct ddog_crasht_UsizeResult {
919
- ddog_crasht_UsizeResult_Tag tag;
1074
+ typedef struct ddog_crasht_Result_Usize {
1075
+ ddog_crasht_Result_Usize_Tag tag;
920
1076
  union {
921
1077
  struct {
922
1078
  uintptr_t ok;
@@ -925,124 +1081,287 @@ typedef struct ddog_crasht_UsizeResult {
925
1081
  struct ddog_Error err;
926
1082
  };
927
1083
  };
928
- } ddog_crasht_UsizeResult;
1084
+ } ddog_crasht_Result_Usize;
929
1085
 
930
1086
  /**
931
- * Represents a CrashInfo. Do not access its member for any reason, only use
932
- * the C API functions on this struct.
1087
+ * Represents an object that should only be referred to by its handle.
1088
+ * Do not access its member for any reason, only use the C API functions on this struct.
933
1089
  */
934
- typedef struct ddog_crasht_CrashInfo {
1090
+ typedef struct ddog_crasht_Handle_CrashInfo {
935
1091
  struct ddog_crasht_CrashInfo *inner;
936
- } ddog_crasht_CrashInfo;
1092
+ } ddog_crasht_Handle_CrashInfo;
937
1093
 
938
1094
  /**
939
- * Returned by [ddog_prof_Profile_new].
1095
+ * Represents an object that should only be referred to by its handle.
1096
+ * Do not access its member for any reason, only use the C API functions on this struct.
940
1097
  */
941
- typedef enum ddog_crasht_CrashInfoNewResult_Tag {
1098
+ typedef struct ddog_crasht_Handle_CrashInfoBuilder {
1099
+ struct ddog_crasht_CrashInfoBuilder *inner;
1100
+ } ddog_crasht_Handle_CrashInfoBuilder;
1101
+
1102
+ typedef enum ddog_crasht_CrashInfo_NewResult_Tag {
942
1103
  DDOG_CRASHT_CRASH_INFO_NEW_RESULT_OK,
943
1104
  DDOG_CRASHT_CRASH_INFO_NEW_RESULT_ERR,
944
- } ddog_crasht_CrashInfoNewResult_Tag;
1105
+ } ddog_crasht_CrashInfo_NewResult_Tag;
945
1106
 
946
- typedef struct ddog_crasht_CrashInfoNewResult {
947
- ddog_crasht_CrashInfoNewResult_Tag tag;
1107
+ typedef struct ddog_crasht_CrashInfo_NewResult {
1108
+ ddog_crasht_CrashInfo_NewResult_Tag tag;
948
1109
  union {
949
1110
  struct {
950
- struct ddog_crasht_CrashInfo ok;
1111
+ struct ddog_crasht_Handle_CrashInfo ok;
951
1112
  };
952
1113
  struct {
953
1114
  struct ddog_Error err;
954
1115
  };
955
1116
  };
956
- } ddog_crasht_CrashInfoNewResult;
1117
+ } ddog_crasht_CrashInfo_NewResult;
1118
+
1119
+ typedef struct ddog_crasht_OsInfo {
1120
+ ddog_CharSlice architecture;
1121
+ ddog_CharSlice bitness;
1122
+ ddog_CharSlice os_type;
1123
+ ddog_CharSlice version;
1124
+ } ddog_crasht_OsInfo;
1125
+
1126
+ typedef struct ddog_crasht_ProcInfo {
1127
+ uint32_t pid;
1128
+ } ddog_crasht_ProcInfo;
957
1129
 
958
1130
  typedef struct ddog_crasht_SigInfo {
959
- uint64_t signum;
960
- ddog_CharSlice signame;
1131
+ ddog_CharSlice addr;
1132
+ int code;
1133
+ enum ddog_crasht_SiCodes code_human_readable;
1134
+ int signo;
1135
+ enum ddog_crasht_SignalNames signo_human_readable;
961
1136
  } ddog_crasht_SigInfo;
962
1137
 
963
- typedef struct ddog_crasht_StackFrameNames {
964
- struct ddog_Option_U32 colno;
965
- ddog_CharSlice filename;
966
- struct ddog_Option_U32 lineno;
1138
+ typedef struct ddog_crasht_Span {
1139
+ ddog_CharSlice id;
1140
+ ddog_CharSlice thread_name;
1141
+ } ddog_crasht_Span;
1142
+
1143
+ /**
1144
+ * Represents an object that should only be referred to by its handle.
1145
+ * Do not access its member for any reason, only use the C API functions on this struct.
1146
+ */
1147
+ typedef struct ddog_crasht_Handle_StackTrace {
1148
+ struct ddog_crasht_StackTrace *inner;
1149
+ } ddog_crasht_Handle_StackTrace;
1150
+
1151
+ typedef struct ddog_crasht_ThreadData {
1152
+ bool crashed;
967
1153
  ddog_CharSlice name;
968
- } ddog_crasht_StackFrameNames;
1154
+ struct ddog_crasht_Handle_StackTrace stack;
1155
+ ddog_CharSlice state;
1156
+ } ddog_crasht_ThreadData;
1157
+
1158
+ /**
1159
+ * Represents an object that should only be referred to by its handle.
1160
+ * Do not access its member for any reason, only use the C API functions on this struct.
1161
+ */
1162
+ typedef struct ddog_crasht_Handle_StackFrame {
1163
+ struct ddog_crasht_StackFrame *inner;
1164
+ } ddog_crasht_Handle_StackFrame;
1165
+
1166
+ typedef enum ddog_crasht_StackFrame_NewResult_Tag {
1167
+ DDOG_CRASHT_STACK_FRAME_NEW_RESULT_OK,
1168
+ DDOG_CRASHT_STACK_FRAME_NEW_RESULT_ERR,
1169
+ } ddog_crasht_StackFrame_NewResult_Tag;
1170
+
1171
+ typedef struct ddog_crasht_StackFrame_NewResult {
1172
+ ddog_crasht_StackFrame_NewResult_Tag tag;
1173
+ union {
1174
+ struct {
1175
+ struct ddog_crasht_Handle_StackFrame ok;
1176
+ };
1177
+ struct {
1178
+ struct ddog_Error err;
1179
+ };
1180
+ };
1181
+ } ddog_crasht_StackFrame_NewResult;
1182
+
1183
+ /**
1184
+ * Represent error codes that `Error` struct can hold
1185
+ */
1186
+ typedef enum ddog_TraceExporterErrorCode {
1187
+ DDOG_TRACE_EXPORTER_ERROR_CODE_ADDRESS_IN_USE,
1188
+ DDOG_TRACE_EXPORTER_ERROR_CODE_CONNECTION_ABORTED,
1189
+ DDOG_TRACE_EXPORTER_ERROR_CODE_CONNECTION_REFUSED,
1190
+ DDOG_TRACE_EXPORTER_ERROR_CODE_CONNECTION_RESET,
1191
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_BODY_FORMAT,
1192
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_BODY_TOO_LONG,
1193
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_CLIENT,
1194
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_EMPTY_BODY,
1195
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_PARSE,
1196
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_SERVER,
1197
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_UNKNOWN,
1198
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_WRONG_STATUS,
1199
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_ARGUMENT,
1200
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_DATA,
1201
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_INPUT,
1202
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_URL,
1203
+ DDOG_TRACE_EXPORTER_ERROR_CODE_IO_ERROR,
1204
+ DDOG_TRACE_EXPORTER_ERROR_CODE_NETWORK_UNKNOWN,
1205
+ DDOG_TRACE_EXPORTER_ERROR_CODE_SERDE,
1206
+ DDOG_TRACE_EXPORTER_ERROR_CODE_TIMED_OUT,
1207
+ } ddog_TraceExporterErrorCode;
1208
+
1209
+ /**
1210
+ * The TraceExporter ingest traces from the tracers serialized as messagepack and forward them to
1211
+ * the agent while applying some transformation.
1212
+ *
1213
+ * # Proxy
1214
+ * If the input format is set as `Proxy`, the exporter will forward traces to the agent without
1215
+ * deserializing them.
1216
+ *
1217
+ * # Features
1218
+ * When the input format is set to `V04` the TraceExporter will deserialize the traces and perform
1219
+ * some operation before sending them to the agent. The available operations are described below.
1220
+ *
1221
+ * ## V07 Serialization
1222
+ * The Trace exporter can serialize the traces to V07 before sending them to the agent.
1223
+ *
1224
+ * ## Stats computation
1225
+ * The Trace Exporter can compute stats on traces. In this case the trace exporter will start
1226
+ * another task to send stats when a time bucket expire. When this feature is enabled the
1227
+ * TraceExporter drops all spans that may not be sampled by the agent.
1228
+ */
1229
+ typedef struct ddog_TraceExporter ddog_TraceExporter;
1230
+
1231
+ /**
1232
+ * The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
1233
+ * Once the configuration is passed to the TraceExporter constructor the config is no longer
1234
+ * needed by the handle and it can be freed.
1235
+ */
1236
+ typedef struct ddog_TraceExporterConfig ddog_TraceExporterConfig;
1237
+
1238
+ /**
1239
+ * Stucture that contains error information that `TraceExporter` API can return.
1240
+ */
1241
+ typedef struct ddog_TraceExporterError {
1242
+ enum ddog_TraceExporterErrorCode code;
1243
+ char *msg;
1244
+ } ddog_TraceExporterError;
969
1245
 
970
- typedef struct ddog_crasht_Slice_StackFrameNames {
1246
+ /**
1247
+ * `AgentResponse` structure holds agent response information upon successful request.
1248
+ */
1249
+ typedef struct ddog_AgentResponse {
971
1250
  /**
972
- * Should be non-null and suitably aligned for the underlying type. It is
973
- * allowed but not recommended for the pointer to be null when the len is
974
- * zero.
1251
+ * Sampling rate for the current service.
975
1252
  */
976
- const struct ddog_crasht_StackFrameNames *ptr;
1253
+ double rate;
1254
+ } ddog_AgentResponse;
1255
+
1256
+ typedef enum ddog_LibraryConfigName {
1257
+ DDOG_LIBRARY_CONFIG_NAME_DD_APM_TRACING_ENABLED,
1258
+ DDOG_LIBRARY_CONFIG_NAME_DD_RUNTIME_METRICS_ENABLED,
1259
+ DDOG_LIBRARY_CONFIG_NAME_DD_LOGS_INJECTION,
1260
+ DDOG_LIBRARY_CONFIG_NAME_DD_PROFILING_ENABLED,
1261
+ DDOG_LIBRARY_CONFIG_NAME_DD_DATA_STREAMS_ENABLED,
1262
+ DDOG_LIBRARY_CONFIG_NAME_DD_APPSEC_ENABLED,
1263
+ DDOG_LIBRARY_CONFIG_NAME_DD_IAST_ENABLED,
1264
+ DDOG_LIBRARY_CONFIG_NAME_DD_DYNAMIC_INSTRUMENTATION_ENABLED,
1265
+ DDOG_LIBRARY_CONFIG_NAME_DD_DATA_JOBS_ENABLED,
1266
+ DDOG_LIBRARY_CONFIG_NAME_DD_APPSEC_SCA_ENABLED,
1267
+ DDOG_LIBRARY_CONFIG_NAME_DD_TRACE_DEBUG,
1268
+ DDOG_LIBRARY_CONFIG_NAME_DD_SERVICE,
1269
+ DDOG_LIBRARY_CONFIG_NAME_DD_ENV,
1270
+ DDOG_LIBRARY_CONFIG_NAME_DD_VERSION,
1271
+ } ddog_LibraryConfigName;
1272
+
1273
+ typedef enum ddog_LibraryConfigSource {
1274
+ DDOG_LIBRARY_CONFIG_SOURCE_LOCAL_STABLE_CONFIG = 0,
1275
+ DDOG_LIBRARY_CONFIG_SOURCE_FLEET_STABLE_CONFIG = 1,
1276
+ } ddog_LibraryConfigSource;
1277
+
1278
+ typedef struct ddog_Configurator ddog_Configurator;
1279
+
1280
+ /**
1281
+ * Ffi safe type representing a borrowed null-terminated C array
1282
+ * Equivalent to a std::ffi::CStr
1283
+ */
1284
+ typedef struct ddog_CStr {
977
1285
  /**
978
- * The number of elements (not bytes) that `.ptr` points to. Must be less
979
- * than or equal to [isize::MAX].
1286
+ * Null terminated char array
980
1287
  */
981
- uintptr_t len;
982
- } ddog_crasht_Slice_StackFrameNames;
983
-
984
- typedef struct ddog_crasht_NormalizedAddress {
985
- uint64_t file_offset;
986
- ddog_ByteSlice build_id;
987
- uint64_t age;
988
- ddog_CharSlice path;
989
- enum ddog_crasht_NormalizedAddressTypes typ;
990
- } ddog_crasht_NormalizedAddress;
1288
+ char *ptr;
1289
+ /**
1290
+ * Length of the array, not counting the null-terminator
1291
+ */
1292
+ uintptr_t length;
1293
+ } ddog_CStr;
991
1294
 
992
- typedef struct ddog_crasht_StackFrame {
993
- ddog_CharSlice build_id;
994
- uintptr_t ip;
995
- uintptr_t module_base_address;
996
- struct ddog_crasht_Slice_StackFrameNames names;
997
- struct ddog_crasht_NormalizedAddress normalized_ip;
998
- uintptr_t sp;
999
- uintptr_t symbol_address;
1000
- } ddog_crasht_StackFrame;
1001
-
1002
- typedef struct ddog_crasht_Slice_StackFrame {
1295
+ typedef struct ddog_Slice_CharSlice {
1003
1296
  /**
1004
1297
  * Should be non-null and suitably aligned for the underlying type. It is
1005
1298
  * allowed but not recommended for the pointer to be null when the len is
1006
1299
  * zero.
1007
1300
  */
1008
- const struct ddog_crasht_StackFrame *ptr;
1301
+ const ddog_CharSlice *ptr;
1009
1302
  /**
1010
1303
  * The number of elements (not bytes) that `.ptr` points to. Must be less
1011
1304
  * than or equal to [isize::MAX].
1012
1305
  */
1013
1306
  uintptr_t len;
1014
- } ddog_crasht_Slice_StackFrame;
1307
+ } ddog_Slice_CharSlice;
1015
1308
 
1016
- typedef struct ddog_crasht_ProcInfo {
1017
- uint32_t pid;
1018
- } ddog_crasht_ProcInfo;
1309
+ typedef struct ddog_ProcessInfo {
1310
+ struct ddog_Slice_CharSlice args;
1311
+ struct ddog_Slice_CharSlice envp;
1312
+ ddog_CharSlice language;
1313
+ } ddog_ProcessInfo;
1019
1314
 
1020
1315
  /**
1021
- * A wrapper for returning owned strings from FFI
1316
+ * Ffi safe type representing an owned null-terminated C array
1317
+ * Equivalent to a std::ffi::CString
1022
1318
  */
1023
- typedef struct ddog_crasht_StringWrapper {
1319
+ typedef struct ddog_CString {
1024
1320
  /**
1025
- * This is a String stuffed into the vec.
1321
+ * Null terminated char array
1026
1322
  */
1027
- struct ddog_Vec_U8 message;
1028
- } ddog_crasht_StringWrapper;
1323
+ char *ptr;
1324
+ /**
1325
+ * Length of the array, not counting the null-terminator
1326
+ */
1327
+ uintptr_t length;
1328
+ } ddog_CString;
1029
1329
 
1030
- typedef enum ddog_crasht_StringWrapperResult_Tag {
1031
- DDOG_CRASHT_STRING_WRAPPER_RESULT_OK,
1032
- DDOG_CRASHT_STRING_WRAPPER_RESULT_ERR,
1033
- } ddog_crasht_StringWrapperResult_Tag;
1330
+ typedef struct ddog_LibraryConfig {
1331
+ enum ddog_LibraryConfigName name;
1332
+ struct ddog_CString value;
1333
+ } ddog_LibraryConfig;
1334
+
1335
+ /**
1336
+ * Holds the raw parts of a Rust Vec; it should only be created from Rust,
1337
+ * never from C.
1338
+ */
1339
+ typedef struct ddog_Vec_LibraryConfig {
1340
+ const struct ddog_LibraryConfig *ptr;
1341
+ uintptr_t len;
1342
+ uintptr_t capacity;
1343
+ } ddog_Vec_LibraryConfig;
1344
+
1345
+ /**
1346
+ * A generic result type for when an operation may fail,
1347
+ * or may return <T> in case of success.
1348
+ */
1349
+ typedef enum ddog_Result_VecLibraryConfig_Tag {
1350
+ DDOG_RESULT_VEC_LIBRARY_CONFIG_OK_VEC_LIBRARY_CONFIG,
1351
+ DDOG_RESULT_VEC_LIBRARY_CONFIG_ERR_VEC_LIBRARY_CONFIG,
1352
+ } ddog_Result_VecLibraryConfig_Tag;
1034
1353
 
1035
- typedef struct ddog_crasht_StringWrapperResult {
1036
- ddog_crasht_StringWrapperResult_Tag tag;
1354
+ typedef struct ddog_Result_VecLibraryConfig {
1355
+ ddog_Result_VecLibraryConfig_Tag tag;
1037
1356
  union {
1038
1357
  struct {
1039
- struct ddog_crasht_StringWrapper ok;
1358
+ struct ddog_Vec_LibraryConfig ok;
1040
1359
  };
1041
1360
  struct {
1042
1361
  struct ddog_Error err;
1043
1362
  };
1044
1363
  };
1045
- } ddog_crasht_StringWrapperResult;
1364
+ } ddog_Result_VecLibraryConfig;
1046
1365
 
1047
1366
  #ifdef __cplusplus
1048
1367
  extern "C" {