SMBPROFILE_STATS_COUNT(connect) \
SMBPROFILE_STATS_COUNT(disconnect) \
SMBPROFILE_STATS_BASIC(idle) \
+ SMBPROFILE_STATS_TIME(cpu_user) \
+ SMBPROFILE_STATS_TIME(cpu_system) \
SMBPROFILE_STATS_COUNT(request) \
SMBPROFILE_STATS_BASIC(push_sec_ctx) \
SMBPROFILE_STATS_BASIC(set_sec_ctx) \
SMBPROFILE_STATS_BASIC(syscall_open) \
SMBPROFILE_STATS_BASIC(syscall_createfile) \
SMBPROFILE_STATS_BASIC(syscall_close) \
- SMBPROFILE_STATS_BYTES(syscall_read) \
SMBPROFILE_STATS_BYTES(syscall_pread) \
SMBPROFILE_STATS_BYTES(syscall_asys_pread) \
- SMBPROFILE_STATS_BYTES(syscall_write) \
SMBPROFILE_STATS_BYTES(syscall_pwrite) \
SMBPROFILE_STATS_BYTES(syscall_asys_pwrite) \
SMBPROFILE_STATS_BASIC(syscall_lseek) \
SMBPROFILE_STATS_BYTES(syscall_recvfile) \
SMBPROFILE_STATS_BASIC(syscall_rename) \
SMBPROFILE_STATS_BASIC(syscall_rename_at) \
- SMBPROFILE_STATS_BASIC(syscall_fsync) \
SMBPROFILE_STATS_BASIC(syscall_asys_fsync) \
SMBPROFILE_STATS_BASIC(syscall_stat) \
SMBPROFILE_STATS_BASIC(syscall_fstat) \
SMBPROFILE_STATS_BASIC(get_nt_acl) \
SMBPROFILE_STATS_BASIC(fget_nt_acl) \
SMBPROFILE_STATS_BASIC(fset_nt_acl) \
- SMBPROFILE_STATS_BASIC(chmod_acl) \
- SMBPROFILE_STATS_BASIC(fchmod_acl) \
SMBPROFILE_STATS_SECTION_END \
\
SMBPROFILE_STATS_SECTION_START(statcache, "Stat Cache") \
void smbprofile_dump(void);
-void smbprofile_cleanup(pid_t pid);
+void smbprofile_cleanup(pid_t pid, pid_t dst);
void smbprofile_stats_accumulate(struct profile_stats *acc,
const struct profile_stats *add);
void smbprofile_collect(struct profile_stats *stats);
#define END_PROFILE_BYTES(x) \
SMBPROFILE_BYTES_ASYNC_END(__profasync_##x)
+#define PROFILE_TIMESTAMP(x) clock_gettime_mono(x)
+
#else /* WITH_PROFILE */
#define SMBPROFILE_COUNT_INCREMENT(_name, _area, _v)
#define END_PROFILE(x)
#define END_PROFILE_BYTES(x)
+#define PROFILE_TIMESTAMP(x) (*(x)=(struct timespec){0})
+
static inline bool smbprofile_dump_pending(void)
{
return false;
return;
}
-static inline void smbprofile_cleanup(pid_t pid)
+static inline void smbprofile_cleanup(pid_t pid, pid_t dst)
{
return;
}
#endif /* WITH_PROFILE */
/* The following definitions come from profile/profile.c */
+struct server_id;
-void set_profile_level(int level, struct server_id src);
+void set_profile_level(int level, const struct server_id *src);
struct messaging_context;
bool profile_setup(struct messaging_context *msg_ctx, bool rdonly);