1951a39d68df598db08dfced8b4707755864a0492Ying Wang/**************************************************************************** 2951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 3951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 4951a39d68df598db08dfced8b4707755864a0492Ying Wang *** This header was automatically generated from a Linux kernel header 5951a39d68df598db08dfced8b4707755864a0492Ying Wang *** of the same name, to make information necessary for userspace to 6951a39d68df598db08dfced8b4707755864a0492Ying Wang *** call into the kernel available to libc. It contains only constants, 7951a39d68df598db08dfced8b4707755864a0492Ying Wang *** structures, and macros generated from the original header, and thus, 8951a39d68df598db08dfced8b4707755864a0492Ying Wang *** contains no copyrightable information. 9951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 10951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/ 12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _LINUX_MEMPOOL_H 13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _LINUX_MEMPOOL_H 14951a39d68df598db08dfced8b4707755864a0492Ying Wang 15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/wait.h> 16951a39d68df598db08dfced8b4707755864a0492Ying Wang 17951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct kmem_cache; 18951a39d68df598db08dfced8b4707755864a0492Ying Wang 19951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef void * (mempool_alloc_t)(gfp_t gfp_mask, void *pool_data); 20951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef void (mempool_free_t)(void *element, void *pool_data); 21951a39d68df598db08dfced8b4707755864a0492Ying Wang 22951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct mempool_s { 23951a39d68df598db08dfced8b4707755864a0492Ying Wang spinlock_t lock; 24951a39d68df598db08dfced8b4707755864a0492Ying Wang int min_nr; 25951a39d68df598db08dfced8b4707755864a0492Ying Wang int curr_nr; 26951a39d68df598db08dfced8b4707755864a0492Ying Wang void **elements; 27951a39d68df598db08dfced8b4707755864a0492Ying Wang 28951a39d68df598db08dfced8b4707755864a0492Ying Wang void *pool_data; 29951a39d68df598db08dfced8b4707755864a0492Ying Wang mempool_alloc_t *alloc; 30951a39d68df598db08dfced8b4707755864a0492Ying Wang mempool_free_t *free; 31951a39d68df598db08dfced8b4707755864a0492Ying Wang wait_queue_head_t wait; 32951a39d68df598db08dfced8b4707755864a0492Ying Wang} mempool_t; 33951a39d68df598db08dfced8b4707755864a0492Ying Wang 34951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 35