#pragma once #include #include "util/packet.h" #include "util/thread/thread.h" struct nn_packet_cache { array(struct nn_packet *) cache; u32 flush; bool disabled; struct nn_cond cond; struct nn_mutex mutex; }; void nn_packet_cache_init(struct nn_packet_cache *cache, u32 size); bool nn_packet_cache_available(struct nn_packet_cache *cache); void nn_packet_cache_send_packet(struct nn_packet_cache *cache, struct nn_packet *packet); void nn_packet_cache_flush(struct nn_packet_cache *cache); bool nn_packet_cache_wait(struct nn_packet_cache *cache, u32 *count); struct nn_packet *nn_packet_cache_at(struct nn_packet_cache *cache, u32 index); void nn_packet_cache_unlock(struct nn_packet_cache *cache); void nn_packet_cache_disable(struct nn_packet_cache *cache); void nn_packet_cache_enable(struct nn_packet_cache *cache); void nn_packet_cache_free(struct nn_packet_cache *cache);