1/* 2 * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5#ifndef _H2UTIL_H_ 6#define _H2UTIL_H_ 7 8 9#include <util/list.h> 10 11#include "h2generic.h" 12 13 14/* net buffer utils for ACL, to be reviewed */ 15#define DEVICEFIELD type 16#define SET_DEVICE(nbuf, hid) \ 17 (nbuf->DEVICEFIELD=(nbuf->DEVICEFIELD & 0xFFFFFF00) | (hid & 0xFF)) 18#define GET_DEVICE(nbuf) fetch_device(NULL, (nbuf->DEVICEFIELD&0xFF)) 19 20 21#define COOKIEFIELD flags 22void* nb_get_whole_buffer(net_buffer* nbuf); 23void nb_destroy(net_buffer* nbuf); 24size_t get_expected_size(net_buffer* nbuf); 25 26/* Room utils */ 27void init_room(struct list* l); 28void* alloc_room(struct list* l, size_t size); 29void reuse_room(struct list* l, void* room); 30void purge_room(struct list* l); 31 32/* list utils */ 33#define list_purge(x) purge_room(x) 34 35#endif 36