static void* pingPongPipe_init( void* hwpipe, void* svcOpaque, const char* args ) { PingPongPipe* ppipe; D("%s: hwpipe=%p", __FUNCTION__, hwpipe); ANEW0(ppipe); pingPongPipe_init0(ppipe, hwpipe, svcOpaque); return ppipe; }
static void* throttlePipe_init( void* hwpipe, void* svcOpaque, const char* args ) { ThrottlePipe* pipe; ANEW0(pipe); pingPongPipe_init0(&pipe->pingpong, hwpipe, svcOpaque); pipe->timer = qemu_new_timer_ns(vm_clock, throttlePipe_timerFunc, pipe); pipe->sendRate = 1e9 / (500*1024*8); pipe->recvRate = pipe->sendRate; return pipe; }
static void* throttlePipe_init( void* hwpipe, void* svcOpaque, const char* args ) { ThrottlePipe* pipe; ANEW0(pipe); pingPongPipe_init0(&pipe->pingpong, hwpipe, svcOpaque); pipe->timer = timer_new(QEMU_CLOCK_VIRTUAL, SCALE_NS, throttlePipe_timerFunc, pipe); /* For now, limit to 500 KB/s in both directions */ pipe->sendRate = 1e9 / (500*1024*8); pipe->recvRate = pipe->sendRate; return pipe; }