aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_timing_timerfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_timing_timerfd.c')
-rw-r--r--res/res_timing_timerfd.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/res/res_timing_timerfd.c b/res/res_timing_timerfd.c
index 60dc2d5ef..b1cbb04bd 100644
--- a/res/res_timing_timerfd.c
+++ b/res/res_timing_timerfd.c
@@ -25,8 +25,6 @@
/*** MODULEINFO
<depend>timerfd</depend>
- <conflict>res_timing_pthread</conflict>
- <conflict>res_timing_dahdi</conflict>
***/
#include "asterisk.h"
@@ -48,10 +46,12 @@ static int timerfd_timer_set_rate(int handle, unsigned int rate);
static void timerfd_timer_ack(int handle, unsigned int quantity);
static int timerfd_timer_enable_continuous(int handle);
static int timerfd_timer_disable_continuous(int handle);
-static enum ast_timing_event timerfd_timer_get_event(int handle);
+static enum ast_timer_event timerfd_timer_get_event(int handle);
static unsigned int timerfd_timer_get_max_rate(int handle);
-static struct ast_timing_functions timerfd_timing_functions = {
+static struct ast_timing_interface timerfd_timing = {
+ .name = "timerfd",
+ .priority = 200,
.timer_open = timerfd_timer_open,
.timer_close = timerfd_timer_close,
.timer_set_rate = timerfd_timer_set_rate,
@@ -226,9 +226,9 @@ static int timerfd_timer_disable_continuous(int handle)
return res;
}
-static enum ast_timing_event timerfd_timer_get_event(int handle)
+static enum ast_timer_event timerfd_timer_get_event(int handle)
{
- enum ast_timing_event res;
+ enum ast_timer_event res;
struct timerfd_timer *our_timer, find_helper = {
.handle = handle,
};
@@ -259,7 +259,7 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
- if (!(timing_funcs_handle = ast_install_timing_functions(&timerfd_timing_functions))) {
+ if (!(timing_funcs_handle = ast_register_timing_interface(&timerfd_timing))) {
ao2_ref(timerfd_timers, -1);
return AST_MODULE_LOAD_DECLINE;
}
@@ -269,11 +269,14 @@ static int load_module(void)
static int unload_module(void)
{
- /* ast_uninstall_timing_functions(timing_funcs_handle); */
+ int res;
- /* This module can not currently be unloaded. No use count handling is being done. */
+ if (!(res = ast_unregister_timing_interface(timing_funcs_handle))) {
+ ao2_ref(timerfd_timers, -1);
+ timerfd_timers = NULL;
+ }
- return -1;
+ return res;
}
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Timerfd Timing Interface");