blob: 5f637fab5623d639a77df59409f8c835dc3a136c [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Note: We only define in C things needed by the C API.
// As such there are two types.h files: This one and types.h for C++.
#pragma once
#include <zircon/compiler.h>
#include <stdint.h>
__BEGIN_CDECLS
// Enumerates all known argument types.
typedef enum {
CTRACE_ARGUMENT_NULL = 0,
CTRACE_ARGUMENT_INT32 = 1,
CTRACE_ARGUMENT_UINT32 = 2,
CTRACE_ARGUMENT_INT64 = 3,
CTRACE_ARGUMENT_UINT64 = 4,
CTRACE_ARGUMENT_DOUBLE = 5,
CTRACE_ARGUMENT_STRING = 6,
CTRACE_ARGUMENT_POINTER = 7,
CTRACE_ARGUMENT_KOID = 8,
} ctrace_argument_t;
// Specifies the scope of instant events.
typedef enum {
// The event is only relevant to the thread it occurred on.
CTRACE_SCOPE_THREAD = 0,
// The event is only relevant to the process in which it occurred.
CTRACE_SCOPE_PROCESS = 1,
// The event is globally relevant.
CTRACE_SCOPE_GLOBAL = 2,
} ctrace_scope_t;
// The encoded form of strings. See writer.{h,cc}.
typedef uint32_t ctrace_encoded_stringref_t;
// The encoded form of threads. See writer.{h,cc}.
typedef uint32_t ctrace_encoded_threadref_t;
__END_CDECLS