Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 1 | /* |
| 2 | * TFRC: main module holding the pieces of the TFRC library together |
| 3 | * |
| 4 | * Copyright (c) 2007 The University of Aberdeen, Scotland, UK |
| 5 | * Copyright (c) 2007 Arnaldo Carvalho de Melo <acme@redhat.com> |
| 6 | */ |
| 7 | #include <linux/module.h> |
| 8 | #include <linux/moduleparam.h> |
| 9 | #include "tfrc.h" |
| 10 | |
| 11 | #ifdef CONFIG_IP_DCCP_TFRC_DEBUG |
| 12 | int tfrc_debug; |
Gerrit Renker | 157439f | 2008-08-23 13:28:27 +0200 | [diff] [blame^] | 13 | module_param(tfrc_debug, bool, 0644); |
Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 14 | MODULE_PARM_DESC(tfrc_debug, "Enable debug messages"); |
| 15 | #endif |
| 16 | |
Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 17 | static int __init tfrc_module_init(void) |
| 18 | { |
Gerrit Renker | 954c2db | 2007-12-12 14:06:14 -0200 | [diff] [blame] | 19 | int rc = tfrc_li_init(); |
Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 20 | |
Gerrit Renker | df8f83f | 2007-12-12 12:24:49 -0200 | [diff] [blame] | 21 | if (rc) |
| 22 | goto out; |
Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 23 | |
Gerrit Renker | df8f83f | 2007-12-12 12:24:49 -0200 | [diff] [blame] | 24 | rc = tfrc_tx_packet_history_init(); |
| 25 | if (rc) |
| 26 | goto out_free_loss_intervals; |
| 27 | |
| 28 | rc = tfrc_rx_packet_history_init(); |
| 29 | if (rc) |
| 30 | goto out_free_tx_history; |
| 31 | return 0; |
| 32 | |
| 33 | out_free_tx_history: |
| 34 | tfrc_tx_packet_history_exit(); |
| 35 | out_free_loss_intervals: |
Gerrit Renker | 954c2db | 2007-12-12 14:06:14 -0200 | [diff] [blame] | 36 | tfrc_li_exit(); |
Gerrit Renker | df8f83f | 2007-12-12 12:24:49 -0200 | [diff] [blame] | 37 | out: |
Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 38 | return rc; |
| 39 | } |
| 40 | |
| 41 | static void __exit tfrc_module_exit(void) |
| 42 | { |
Gerrit Renker | df8f83f | 2007-12-12 12:24:49 -0200 | [diff] [blame] | 43 | tfrc_rx_packet_history_exit(); |
| 44 | tfrc_tx_packet_history_exit(); |
Gerrit Renker | 954c2db | 2007-12-12 14:06:14 -0200 | [diff] [blame] | 45 | tfrc_li_exit(); |
Gerrit Renker | c40616c | 2007-12-06 12:26:38 -0200 | [diff] [blame] | 46 | } |
| 47 | |
| 48 | module_init(tfrc_module_init); |
| 49 | module_exit(tfrc_module_exit); |
| 50 | |
| 51 | MODULE_AUTHOR("Gerrit Renker <gerrit@erg.abdn.ac.uk>, " |
| 52 | "Ian McDonald <ian.mcdonald@jandi.co.nz>, " |
| 53 | "Arnaldo Carvalho de Melo <acme@redhat.com>"); |
| 54 | MODULE_DESCRIPTION("DCCP TFRC library"); |
| 55 | MODULE_LICENSE("GPL"); |