diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:30:32 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:30:32 -0800 |
commit | 8b23a6c7e1aee255004dd19098d4c2462b61b849 (patch) | |
tree | 7a4d682ba51f0ff0364c5ca2509f515bdaf96de9 /shaper.h | |
parent | f721e3ac031f892af46f255a47d7f54a91317b30 (diff) | |
download | external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.zip external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.tar.gz external_qemu-8b23a6c7e1aee255004dd19098d4c2462b61b849.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'shaper.h')
-rw-r--r-- | shaper.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/shaper.h b/shaper.h new file mode 100644 index 0000000..45dbd5b --- /dev/null +++ b/shaper.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2007-2008 The Android Open Source Project +** +** This software is licensed under the terms of the GNU General Public +** License version 2, as published by the Free Software Foundation, and +** may be copied, distributed, and modified under those terms. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +*/ +#ifndef _SLIRP_SHAPER_H_ +#define _SLIRP_SHAPER_H_ + +#include <stddef.h> + +/* a NetShaper object is used to limit the throughput of data packets + * at a fixed rate expressed in bits/seconds + */ +typedef struct NetShaperRec_* NetShaper; +typedef void (*NetShaperSendFunc)( void* data, size_t size, void* opaque); + +NetShaper netshaper_create ( int do_copy, + NetShaperSendFunc send_func ); + +void netshaper_set_rate(NetShaper shaper, double rate ); + +void netshaper_send( NetShaper shaper, void* data, size_t size ); + +void netshaper_send_aux( NetShaper shaper, void* data, size_t size, void* opaque ); + +int netshaper_can_send( NetShaper shaper ); + +void netshaper_destroy (NetShaper shaper); + +/* a NetDelay object is used to simulate network connection latencies */ +typedef struct NetDelayRec_* NetDelay; + +NetDelay netdelay_create( NetShaperSendFunc send_func ); +void netdelay_set_latency( NetDelay delay, int min_ms, int max_ms ); +void netdelay_send( NetDelay delay, const void* data, size_t size ); +void netdelay_send_aux( NetDelay delay, const void* data, size_t size, void* opaque ); +void netdelay_destroy( NetDelay delay ); + +/** in vl.c */ +/* network traffic shaper and delayer */ +extern NetShaper slirp_shaper_in; +extern NetShaper slirp_shaper_out; +extern NetDelay slirp_delay_in; + +#endif /* _SLIRP_SHAPER_H_ */ |