blob: 6a6689f8cf11f18bdac35b5095dee4b3a025bf13 [file] [log] [blame]
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_LIBPLATFORM_TRACING_RECORDER_MAC_H_
#define V8_LIBPLATFORM_TRACING_RECORDER_MAC_H_
#include "src/libplatform/tracing/recorder.h"
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability"
namespace v8 {
namespace platform {
namespace tracing {
Recorder::Recorder() { v8Provider = os_log_create("v8", ""); }
Recorder::~Recorder() {}
bool Recorder::IsEnabled() {
return os_log_type_enabled(v8Provider, OS_LOG_TYPE_DEFAULT);
}
bool Recorder::IsEnabled(const uint8_t level) {
if (level == OS_LOG_TYPE_DEFAULT || level == OS_LOG_TYPE_INFO ||
level == OS_LOG_TYPE_DEBUG || level == OS_LOG_TYPE_ERROR ||
level == OS_LOG_TYPE_FAULT) {
return os_log_type_enabled(v8Provider, static_cast<os_log_type_t>(level));
}
return false;
}
void Recorder::AddEvent(TraceObject* trace_event) {
os_signpost_event_emit(v8Provider, OS_SIGNPOST_ID_EXCLUSIVE, "",
"%s, cpu_duration: %d", trace_event->name(),
static_cast<int>(trace_event->cpu_duration()));
}
} // namespace tracing
} // namespace platform
} // namespace v8
#pragma clang diagnostic pop
#endif // V8_LIBPLATFORM_TRACING_RECORDER_MAC_H_