brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 4a65524 Raw
95 lines · c
1//===-- GenealogySPI.h ------------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//===----------------------------------------------------------------------===//7 8#ifndef LLDB_TOOLS_DEBUGSERVER_SOURCE_MACOSX_GENEALOGYSPI_H9#define LLDB_TOOLS_DEBUGSERVER_SOURCE_MACOSX_GENEALOGYSPI_H10 11#include <xpc/xpc.h>12 13typedef void *os_activity_process_list_t;14typedef void *os_activity_list_t;15typedef void *os_trace_message_list_t;16typedef struct os_activity_watch_s *os_activity_watch_t;17typedef uint64_t os_activity_t;18 19struct os_activity_breadcrumb_s {20  uint32_t breadcrumb_id;21  uint64_t activity_id;22  uint64_t timestamp;23  const char *name;24};25 26typedef struct os_activity_breadcrumb_s *os_activity_breadcrumb_t;27 28typedef struct os_trace_message_s {29  uint64_t trace_id;30  uint64_t thread;31  uint64_t timestamp;32  uint32_t offset;33  xpc_object_t __unsafe_unretained payload;34  const uint8_t *image_uuid;35  const char *image_path;36  const char *format;37  const void *buffer;38  size_t bufferLen;39} * os_trace_message_t;40 41typedef struct os_activity_process_s {42  os_activity_process_list_t child_procs;43  os_trace_message_list_t messages;44  os_activity_list_t activities;45  void *breadcrumbs;46  uint64_t proc_id;47  const uint8_t *image_uuid;48  const char *image_path;49  pid_t pid;50} * os_activity_process_t;51 52typedef struct os_activity_entry_s {53  uint64_t activity_start;54  os_activity_t activity_id;55  os_activity_t parent_id;56  const char *activity_name;57  const char *reason;58  os_trace_message_list_t messages;59} * os_activity_entry_t;60 61enum {62  OS_ACTIVITY_DIAGNOSTIC_DEFAULT = 0x00000000,63  OS_ACTIVITY_DIAGNOSTIC_PROCESS_ONLY = 0x00000001,64  OS_ACTIVITY_DIAGNOSTIC_SKIP_DECODE = 0x00000002,65  OS_ACTIVITY_DIAGNOSTIC_FLATTENED = 0x00000004,66  OS_ACTIVITY_DIAGNOSTIC_ALL_ACTIVITIES = 0x00000008,67  OS_ACTIVITY_DIAGNOSTIC_MAX = 0x0000000f68};69typedef uint32_t os_activity_diagnostic_flag_t;70 71enum {72  OS_ACTIVITY_WATCH_DEFAULT = 0x00000000,73  OS_ACTIVITY_WATCH_PROCESS_ONLY = 0x00000001,74  OS_ACTIVITY_WATCH_SKIP_DECODE = 0x00000002,75  OS_ACTIVITY_WATCH_PAYLOAD = 0x00000004,76  OS_ACTIVITY_WATCH_ERRORS = 0x00000008,77  OS_ACTIVITY_WATCH_FAULTS = 0x00000010,78  OS_ACTIVITY_WATCH_MAX = 0x0000001f79};80typedef uint32_t os_activity_watch_flag_t;81 82// Return values from os_trace_get_type()83#define OS_TRACE_TYPE_RELEASE (1u << 0)84#define OS_TRACE_TYPE_DEBUG (1u << 1)85#define OS_TRACE_TYPE_ERROR ((1u << 6) | (1u << 0))86#define OS_TRACE_TYPE_FAULT ((1u << 7) | (1u << 6) | (1u << 0))87 88typedef void (^os_activity_watch_block_t)(os_activity_watch_t watch,89                                          os_activity_process_t process_info,90                                          bool canceled);91typedef void (^os_diagnostic_block_t)(os_activity_process_list_t processes,92                                      int error);93 94#endif95