From 2b3d47391b1d75b4711d7ee18cd40ab5ef7394f6 Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@efficios.com>
Date: Mon, 25 Nov 2019 16:24:03 -0500
Subject: [PATCH] Add declarations for functions in health_stall.c

Silences a bunch of -Wmissing-declarations warnings.

Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Change-Id: Ia97da7bfb6d700c633aa499edb0d452e2da7a556
---

diff --git a/tests/regression/tools/health/health_stall.c b/tests/regression/tools/health/health_stall.c
index 4439b73..1c0d6dc 100644
--- a/tests/regression/tools/health/health_stall.c
+++ b/tests/regression/tools/health/health_stall.c
@@ -43,6 +43,7 @@
 
 /* Session daemon */
 
+int __testpoint_sessiond_thread_manage_clients(void);
 int __testpoint_sessiond_thread_manage_clients(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_MANAGE_CLIENTS_STALL";
@@ -54,6 +55,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_registration_apps(void);
 int __testpoint_sessiond_thread_registration_apps(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_REG_APPS_STALL";
@@ -65,6 +67,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_manage_apps(void);
 int __testpoint_sessiond_thread_manage_apps(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_MANAGE_APPS_STALL";
@@ -76,6 +79,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_manage_kernel(void);
 int __testpoint_sessiond_thread_manage_kernel(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_MANAGE_KERNEL_STALL";
@@ -87,6 +91,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_manage_consumer(void);
 int __testpoint_sessiond_thread_manage_consumer(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_MANAGE_CONSUMER_STALL";
@@ -98,6 +103,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_ht_cleanup(void);
 int __testpoint_sessiond_thread_ht_cleanup(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_HT_CLEANUP_STALL";
@@ -109,6 +115,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_app_manage_notify(void);
 int __testpoint_sessiond_thread_app_manage_notify(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_APP_MANAGE_NOTIFY_STALL";
@@ -120,6 +127,7 @@
 	return 0;
 }
 
+int __testpoint_sessiond_thread_app_reg_dispatch(void);
 int __testpoint_sessiond_thread_app_reg_dispatch(void)
 {
 	const char *var = "LTTNG_SESSIOND_THREAD_APP_REG_DISPATCH_STALL";
@@ -133,6 +141,7 @@
 
 /* Consumer daemon */
 
+int __testpoint_consumerd_thread_channel(void);
 int __testpoint_consumerd_thread_channel(void)
 {
 	const char *var = "LTTNG_CONSUMERD_THREAD_CHANNEL_STALL";
@@ -144,6 +153,7 @@
 	return 0;
 }
 
+int __testpoint_consumerd_thread_metadata(void);
 int __testpoint_consumerd_thread_metadata(void)
 {
 	const char *var = "LTTNG_CONSUMERD_THREAD_METADATA_STALL";
@@ -155,6 +165,7 @@
 	return 0;
 }
 
+int __testpoint_consumerd_thread_data(void);
 int __testpoint_consumerd_thread_data(void)
 {
 	const char *var = "LTTNG_CONSUMERD_THREAD_DATA_STALL";
@@ -166,6 +177,7 @@
 	return 0;
 }
 
+int __testpoint_consumerd_thread_sessiond(void);
 int __testpoint_consumerd_thread_sessiond(void)
 {
 	const char *var = "LTTNG_CONSUMERD_THREAD_SESSIOND_STALL";
@@ -177,6 +189,7 @@
 	return 0;
 }
 
+int __testpoint_consumerd_thread_metadata_timer(void);
 int __testpoint_consumerd_thread_metadata_timer(void)
 {
 	const char *var = "LTTNG_CONSUMERD_THREAD_METADATA_TIMER_STALL";
@@ -190,6 +203,7 @@
 
 /* Relay daemon */
 
+int __testpoint_relayd_thread_dispatcher(void);
 int __testpoint_relayd_thread_dispatcher(void)
 {
 	const char *var = "LTTNG_RELAYD_THREAD_DISPATCHER_STALL";
@@ -201,6 +215,7 @@
 	return 0;
 }
 
+int __testpoint_relayd_thread_worker(void);
 int __testpoint_relayd_thread_worker(void)
 {
 	const char *var = "LTTNG_RELAYD_THREAD_WORKER_STALL";
@@ -212,6 +227,7 @@
 	return 0;
 }
 
+int __testpoint_relayd_thread_listener(void);
 int __testpoint_relayd_thread_listener(void)
 {
 	const char *var = "LTTNG_RELAYD_THREAD_LISTENER_STALL";
@@ -223,6 +239,7 @@
 	return 0;
 }
 
+int __testpoint_relayd_thread_live_dispatcher(void);
 int __testpoint_relayd_thread_live_dispatcher(void)
 {
 	const char *var = "LTTNG_RELAYD_THREAD_LIVE_DISPATCHER_STALL";
@@ -234,6 +251,7 @@
 	return 0;
 }
 
+int __testpoint_relayd_thread_live_worker(void);
 int __testpoint_relayd_thread_live_worker(void)
 {
 	const char *var = "LTTNG_RELAYD_THREAD_LIVE_WORKER_STALL";
@@ -245,6 +263,7 @@
 	return 0;
 }
 
+int __testpoint_relayd_thread_live_listener(void);
 int __testpoint_relayd_thread_live_listener(void)
 {
 	const char *var = "LTTNG_RELAYD_THREAD_LIVE_LISTENER_STALL";
