| 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; | 
|  | 13 | module_param(tfrc_debug, bool, 0444); | 
|  | 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"); |