| /* |
| * TFRC: main module holding the pieces of the TFRC library together |
| * |
| * Copyright (c) 2007 The University of Aberdeen, Scotland, UK |
| * Copyright (c) 2007 Arnaldo Carvalho de Melo <acme@redhat.com> |
| */ |
| #include <linux/module.h> |
| #include <linux/moduleparam.h> |
| #include "tfrc.h" |
| |
| #ifdef CONFIG_IP_DCCP_TFRC_DEBUG |
| int tfrc_debug; |
| module_param(tfrc_debug, bool, 0644); |
| MODULE_PARM_DESC(tfrc_debug, "Enable debug messages"); |
| #endif |
| |
| static int __init tfrc_module_init(void) |
| { |
| int rc = tfrc_li_init(); |
| |
| if (rc) |
| goto out; |
| |
| rc = tfrc_tx_packet_history_init(); |
| if (rc) |
| goto out_free_loss_intervals; |
| |
| rc = tfrc_rx_packet_history_init(); |
| if (rc) |
| goto out_free_tx_history; |
| return 0; |
| |
| out_free_tx_history: |
| tfrc_tx_packet_history_exit(); |
| out_free_loss_intervals: |
| tfrc_li_exit(); |
| out: |
| return rc; |
| } |
| |
| static void __exit tfrc_module_exit(void) |
| { |
| tfrc_rx_packet_history_exit(); |
| tfrc_tx_packet_history_exit(); |
| tfrc_li_exit(); |
| } |
| |
| module_init(tfrc_module_init); |
| module_exit(tfrc_module_exit); |
| |
| MODULE_AUTHOR("Gerrit Renker <gerrit@erg.abdn.ac.uk>, " |
| "Ian McDonald <ian.mcdonald@jandi.co.nz>, " |
| "Arnaldo Carvalho de Melo <acme@redhat.com>"); |
| MODULE_DESCRIPTION("DCCP TFRC library"); |
| MODULE_LICENSE("GPL"); |