diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
commit | 55f4e4a5ec657a017e3bf75299ad71fd1c968dd3 (patch) | |
tree | 550ce922ea0e125ac6a9738210ce2939bf2fe901 /shaper.h | |
parent | 413f05aaf54fa08c0ae7e997327a4f4a473c0a8d (diff) | |
download | external_qemu-55f4e4a5ec657a017e3bf75299ad71fd1c968dd3.zip external_qemu-55f4e4a5ec657a017e3bf75299ad71fd1c968dd3.tar.gz external_qemu-55f4e4a5ec657a017e3bf75299ad71fd1c968dd3.tar.bz2 |
Initial Contribution
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..263e19f --- /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 "vl.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_ */ |