perf_event.cpp 563 B

1234567891011121314151617181920212223
  1. /*
  2. * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <Kernel/PerformanceEventBuffer.h>
  7. #include <Kernel/Process.h>
  8. namespace Kernel {
  9. KResultOr<FlatPtr> Process::sys$perf_event(int type, FlatPtr arg1, FlatPtr arg2)
  10. {
  11. auto events_buffer = current_perf_events_buffer();
  12. if (!events_buffer) {
  13. if (!create_perf_events_buffer_if_needed())
  14. return ENOMEM;
  15. events_buffer = perf_events();
  16. }
  17. return events_buffer->append(type, arg1, arg2, nullptr);
  18. }
  19. }