2 * Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 1999-2003 Internet Software Consortium.
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.
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.
18 /* $Id: types.h,v 1.46.84.2 2009/01/29 23:47:44 tbox Exp $ */
25 * OS-specific types, from the OS-specific include directories.
28 #include <isc/offset.h>
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?
34 #include <isc/boolean.h>
36 * XXXDCL This is just for ISC_LIST and ISC_LINK, but gets all of the other
41 /* Core Types. Alphabetized by defined type. */
43 typedef struct isc_bitstring isc_bitstring_t; /*%< Bitstring */
44 typedef struct isc_buffer isc_buffer_t; /*%< Buffer */
45 typedef ISC_LIST(isc_buffer_t) isc_bufferlist_t; /*%< Buffer List */
46 typedef struct isc_constregion isc_constregion_t; /*%< Const region */
47 typedef struct isc_consttextregion isc_consttextregion_t; /*%< Const Text Region */
48 typedef struct isc_entropy isc_entropy_t; /*%< Entropy */
49 typedef struct isc_entropysource isc_entropysource_t; /*%< Entropy Source */
50 typedef struct isc_event isc_event_t; /*%< Event */
51 typedef ISC_LIST(isc_event_t) isc_eventlist_t; /*%< Event List */
52 typedef unsigned int isc_eventtype_t; /*%< Event Type */
53 typedef isc_uint32_t isc_fsaccess_t; /*%< FS Access */
54 typedef struct isc_hash isc_hash_t; /*%< Hash */
55 typedef struct isc_httpd isc_httpd_t; /*%< HTTP client */
56 typedef void (isc_httpdfree_t)(isc_buffer_t *, void *); /*%< HTTP free function */
57 typedef struct isc_httpdmgr isc_httpdmgr_t; /*%< HTTP manager */
58 typedef struct isc_httpdurl isc_httpdurl_t; /*%< HTTP URL */
59 typedef void (isc_httpdondestroy_t)(void *); /*%< Callback on destroying httpd */
60 typedef struct isc_interface isc_interface_t; /*%< Interface */
61 typedef struct isc_interfaceiter isc_interfaceiter_t; /*%< Interface Iterator */
62 typedef struct isc_interval isc_interval_t; /*%< Interval */
63 typedef struct isc_lex isc_lex_t; /*%< Lex */
64 typedef struct isc_log isc_log_t; /*%< Log */
65 typedef struct isc_logcategory isc_logcategory_t; /*%< Log Category */
66 typedef struct isc_logconfig isc_logconfig_t; /*%< Log Configuration */
67 typedef struct isc_logmodule isc_logmodule_t; /*%< Log Module */
68 typedef struct isc_mem isc_mem_t; /*%< Memory */
69 typedef struct isc_mempool isc_mempool_t; /*%< Memory Pool */
70 typedef struct isc_msgcat isc_msgcat_t; /*%< Message Catalog */
71 typedef struct isc_ondestroy isc_ondestroy_t; /*%< On Destroy */
72 typedef struct isc_netaddr isc_netaddr_t; /*%< Net Address */
73 typedef struct isc_portset isc_portset_t; /*%< Port Set */
74 typedef struct isc_quota isc_quota_t; /*%< Quota */
75 typedef struct isc_random isc_random_t; /*%< Random */
76 typedef struct isc_ratelimiter isc_ratelimiter_t; /*%< Rate Limiter */
77 typedef struct isc_region isc_region_t; /*%< Region */
78 typedef isc_uint64_t isc_resourcevalue_t; /*%< Resource Value */
79 typedef unsigned int isc_result_t; /*%< Result */
80 typedef struct isc_rwlock isc_rwlock_t; /*%< Read Write Lock */
81 typedef struct isc_sockaddr isc_sockaddr_t; /*%< Socket Address */
82 typedef struct isc_socket isc_socket_t; /*%< Socket */
83 typedef struct isc_socketevent isc_socketevent_t; /*%< Socket Event */
84 typedef struct isc_socketmgr isc_socketmgr_t; /*%< Socket Manager */
85 typedef struct isc_stats isc_stats_t; /*%< Statistics */
86 typedef int isc_statscounter_t; /*%< Statistics Counter */
87 typedef struct isc_symtab isc_symtab_t; /*%< Symbol Table */
88 typedef struct isc_task isc_task_t; /*%< Task */
89 typedef ISC_LIST(isc_task_t) isc_tasklist_t; /*%< Task List */
90 typedef struct isc_taskmgr isc_taskmgr_t; /*%< Task Manager */
91 typedef struct isc_textregion isc_textregion_t; /*%< Text Region */
92 typedef struct isc_time isc_time_t; /*%< Time */
93 typedef struct isc_timer isc_timer_t; /*%< Timer */
94 typedef struct isc_timermgr isc_timermgr_t; /*%< Timer Manager */
96 typedef void (*isc_taskaction_t)(isc_task_t *, isc_event_t *);
97 typedef int (*isc_sockfdwatch_t)(isc_task_t *, isc_socket_t *, void *);
99 /* The following cannot be listed alphabetically due to forward reference */
100 typedef isc_result_t (isc_httpdaction_t)(const char *url,
101 const char *querystring,
103 unsigned int *retcode,
105 const char **mimetype,
107 isc_httpdfree_t **freecb,
109 typedef isc_boolean_t (isc_httpdclientok_t)(const isc_sockaddr_t *, void *);
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
124 #endif /* ISC_TYPES_H */