types.h revision 222395
1/* 2 * Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC") 3 * Copyright (C) 1999-2003 Internet Software Consortium. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 * PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18/* $Id: types.h,v 1.46.84.2 2009-01-29 23:47:44 tbox Exp $ */ 19 20#ifndef ISC_TYPES_H 21#define ISC_TYPES_H 1 22 23/*! \file isc/types.h 24 * \brief 25 * OS-specific types, from the OS-specific include directories. 26 */ 27#include <isc/int.h> 28#include <isc/offset.h> 29 30/* 31 * XXXDCL should isc_boolean_t be moved here, requiring an explicit include 32 * of <isc/boolean.h> when ISC_TRUE/ISC_FALSE/ISC_TF() are desired? 33 */ 34#include <isc/boolean.h> 35/* 36 * XXXDCL This is just for ISC_LIST and ISC_LINK, but gets all of the other 37 * list macros too. 38 */ 39#include <isc/list.h> 40 41/* Core Types. Alphabetized by defined type. */ 42 43typedef struct isc_bitstring isc_bitstring_t; /*%< Bitstring */ 44typedef struct isc_buffer isc_buffer_t; /*%< Buffer */ 45typedef ISC_LIST(isc_buffer_t) isc_bufferlist_t; /*%< Buffer List */ 46typedef struct isc_constregion isc_constregion_t; /*%< Const region */ 47typedef struct isc_consttextregion isc_consttextregion_t; /*%< Const Text Region */ 48typedef struct isc_entropy isc_entropy_t; /*%< Entropy */ 49typedef struct isc_entropysource isc_entropysource_t; /*%< Entropy Source */ 50typedef struct isc_event isc_event_t; /*%< Event */ 51typedef ISC_LIST(isc_event_t) isc_eventlist_t; /*%< Event List */ 52typedef unsigned int isc_eventtype_t; /*%< Event Type */ 53typedef isc_uint32_t isc_fsaccess_t; /*%< FS Access */ 54typedef struct isc_hash isc_hash_t; /*%< Hash */ 55typedef struct isc_httpd isc_httpd_t; /*%< HTTP client */ 56typedef void (isc_httpdfree_t)(isc_buffer_t *, void *); /*%< HTTP free function */ 57typedef struct isc_httpdmgr isc_httpdmgr_t; /*%< HTTP manager */ 58typedef struct isc_httpdurl isc_httpdurl_t; /*%< HTTP URL */ 59typedef void (isc_httpdondestroy_t)(void *); /*%< Callback on destroying httpd */ 60typedef struct isc_interface isc_interface_t; /*%< Interface */ 61typedef struct isc_interfaceiter isc_interfaceiter_t; /*%< Interface Iterator */ 62typedef struct isc_interval isc_interval_t; /*%< Interval */ 63typedef struct isc_lex isc_lex_t; /*%< Lex */ 64typedef struct isc_log isc_log_t; /*%< Log */ 65typedef struct isc_logcategory isc_logcategory_t; /*%< Log Category */ 66typedef struct isc_logconfig isc_logconfig_t; /*%< Log Configuration */ 67typedef struct isc_logmodule isc_logmodule_t; /*%< Log Module */ 68typedef struct isc_mem isc_mem_t; /*%< Memory */ 69typedef struct isc_mempool isc_mempool_t; /*%< Memory Pool */ 70typedef struct isc_msgcat isc_msgcat_t; /*%< Message Catalog */ 71typedef struct isc_ondestroy isc_ondestroy_t; /*%< On Destroy */ 72typedef struct isc_netaddr isc_netaddr_t; /*%< Net Address */ 73typedef struct isc_portset isc_portset_t; /*%< Port Set */ 74typedef struct isc_quota isc_quota_t; /*%< Quota */ 75typedef struct isc_random isc_random_t; /*%< Random */ 76typedef struct isc_ratelimiter isc_ratelimiter_t; /*%< Rate Limiter */ 77typedef struct isc_region isc_region_t; /*%< Region */ 78typedef isc_uint64_t isc_resourcevalue_t; /*%< Resource Value */ 79typedef unsigned int isc_result_t; /*%< Result */ 80typedef struct isc_rwlock isc_rwlock_t; /*%< Read Write Lock */ 81typedef struct isc_sockaddr isc_sockaddr_t; /*%< Socket Address */ 82typedef struct isc_socket isc_socket_t; /*%< Socket */ 83typedef struct isc_socketevent isc_socketevent_t; /*%< Socket Event */ 84typedef struct isc_socketmgr isc_socketmgr_t; /*%< Socket Manager */ 85typedef struct isc_stats isc_stats_t; /*%< Statistics */ 86typedef int isc_statscounter_t; /*%< Statistics Counter */ 87typedef struct isc_symtab isc_symtab_t; /*%< Symbol Table */ 88typedef struct isc_task isc_task_t; /*%< Task */ 89typedef ISC_LIST(isc_task_t) isc_tasklist_t; /*%< Task List */ 90typedef struct isc_taskmgr isc_taskmgr_t; /*%< Task Manager */ 91typedef struct isc_textregion isc_textregion_t; /*%< Text Region */ 92typedef struct isc_time isc_time_t; /*%< Time */ 93typedef struct isc_timer isc_timer_t; /*%< Timer */ 94typedef struct isc_timermgr isc_timermgr_t; /*%< Timer Manager */ 95 96typedef void (*isc_taskaction_t)(isc_task_t *, isc_event_t *); 97typedef int (*isc_sockfdwatch_t)(isc_task_t *, isc_socket_t *, void *); 98 99/* The following cannot be listed alphabetically due to forward reference */ 100typedef isc_result_t (isc_httpdaction_t)(const char *url, 101 const char *querystring, 102 void *arg, 103 unsigned int *retcode, 104 const char **retmsg, 105 const char **mimetype, 106 isc_buffer_t *body, 107 isc_httpdfree_t **freecb, 108 void **freecb_args); 109typedef isc_boolean_t (isc_httpdclientok_t)(const isc_sockaddr_t *, void *); 110 111/*% Resource */ 112typedef enum { 113 isc_resource_coresize = 1, 114 isc_resource_cputime, 115 isc_resource_datasize, 116 isc_resource_filesize, 117 isc_resource_lockedmemory, 118 isc_resource_openfiles, 119 isc_resource_processes, 120 isc_resource_residentsize, 121 isc_resource_stacksize 122} isc_resource_t; 123 124#endif /* ISC_TYPES_H */ 125