From 9458f41cdfdf37dcfdcbda145bca0269b6f17104 Mon Sep 17 00:00:00 2001 From: Adam Greloch Date: Fri, 30 May 2025 13:29:59 +0200 Subject: [PATCH] !perf: adapt to new perf syscall interface JIRA: RTOS-1057 --- include/sys/perf.h | 42 ++++++++++++++++++++++++++++++++++++++++++ include/sys/threads.h | 9 --------- sys/Makefile | 2 +- sys/perf.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 include/sys/perf.h create mode 100644 sys/perf.c diff --git a/include/sys/perf.h b/include/sys/perf.h new file mode 100644 index 00000000..c219dc9e --- /dev/null +++ b/include/sys/perf.h @@ -0,0 +1,42 @@ +/* + * Phoenix-RTOS + * + * libphoenix + * + * sys/perf + * + * Copyright 2025 Phoenix Systems + * Author: Adam Greloch + * + * %LICENSE% + */ + +#ifndef _LIBPHOENIX_SYS_PERF_H_ +#define _LIBPHOENIX_SYS_PERF_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +int perf_start(perf_mode_t mode, unsigned int flags, void *arg, size_t sz); + + +int perf_read(perf_mode_t mode, void *buffer, size_t bufsz, int chan); + + +int perf_stop(perf_mode_t mode); + + +int perf_finish(perf_mode_t mode); + + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/include/sys/threads.h b/include/sys/threads.h index 04d47197..cfb8ab9f 100644 --- a/include/sys/threads.h +++ b/include/sys/threads.h @@ -49,15 +49,6 @@ extern void _errno_new(struct __errno_t *e); extern void _errno_remove(struct __errno_t *e); -extern int perf_start(unsigned pid); - - -extern int perf_read(void *buffer, size_t bufsz); - - -extern int perf_finish(void); - - extern int gettid(void); diff --git a/sys/Makefile b/sys/Makefile index e20d88c0..b6a38f89 100644 --- a/sys/Makefile +++ b/sys/Makefile @@ -5,4 +5,4 @@ # OBJS += $(addprefix $(PREFIX_O)sys/, events.o ioctl.o list.o mount.o rb.o resource.o select.o \ -semaphore.o socket.o stat.o statvfs.o threads.o time.o times.o wait.o uio.o proto.o mman.o uname.o) +semaphore.o socket.o stat.o statvfs.o threads.o time.o times.o wait.o uio.o proto.o mman.o uname.o perf.o) diff --git a/sys/perf.c b/sys/perf.c new file mode 100644 index 00000000..1dac5325 --- /dev/null +++ b/sys/perf.c @@ -0,0 +1,43 @@ +/* + * Phoenix-RTOS + * + * libphoenix + * + * sys/perf + * + * Copyright 2025 Phoenix Systems + * Author: Adam Greloch + * + * %LICENSE% + */ + +#include + +extern int sys_perf_start(int mode, unsigned int flags, void *arg, size_t sz); +extern int sys_perf_read(int mode, void *buffer, size_t bufsz, int chan); +extern int sys_perf_stop(int mode); +extern int sys_perf_finish(int mode); + + +int perf_start(perf_mode_t mode, unsigned int flags, void *arg, size_t sz) +{ + return sys_perf_start((int)mode, flags, arg, sz); +} + + +int perf_read(perf_mode_t mode, void *buffer, size_t bufsz, int chan) +{ + return sys_perf_read((int)mode, buffer, bufsz, chan); +} + + +int perf_stop(perf_mode_t mode) +{ + return sys_perf_stop((int)mode); +} + + +int perf_finish(perf_mode_t mode) +{ + return sys_perf_finish((int)mode); +}