types.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2004-2009, 2012-2014  Internet Systems Consortium, Inc. ("ISC")
00003  * Copyright (C) 1999-2003  Internet Software Consortium.
00004  *
00005  * Permission to use, copy, modify, and/or distribute this software for any
00006  * purpose with or without fee is hereby granted, provided that the above
00007  * copyright notice and this permission notice appear in all copies.
00008  *
00009  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
00010  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
00011  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
00012  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
00013  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
00014  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
00015  * PERFORMANCE OF THIS SOFTWARE.
00016  */
00017 
00018 /* $Id$ */
00019 
00020 #ifndef ISC_TYPES_H
00021 #define ISC_TYPES_H 1
00022 
00023 #include <isc/bind9.h>
00024 
00025 /*! \file isc/types.h
00026  * \brief
00027  * OS-specific types, from the OS-specific include directories.
00028  */
00029 #include <isc/int.h>
00030 #include <isc/offset.h>
00031 
00032 /*
00033  * XXXDCL should isc_boolean_t be moved here, requiring an explicit include
00034  * of <isc/boolean.h> when ISC_TRUE/ISC_FALSE/ISC_TF() are desired?
00035  */
00036 #include <isc/boolean.h>
00037 /*
00038  * XXXDCL This is just for ISC_LIST and ISC_LINK, but gets all of the other
00039  * list macros too.
00040  */
00041 #include <isc/list.h>
00042 
00043 /* Core Types.  Alphabetized by defined type. */
00044 
00045 typedef struct isc_appctx               isc_appctx_t;           /*%< Application context */
00046 typedef struct isc_backtrace_symmap     isc_backtrace_symmap_t; /*%< Symbol Table Entry */
00047 typedef struct isc_buffer               isc_buffer_t;           /*%< Buffer */
00048 typedef ISC_LIST(isc_buffer_t)          isc_bufferlist_t;       /*%< Buffer List */
00049 typedef struct isc_constregion          isc_constregion_t;      /*%< Const region */
00050 typedef struct isc_consttextregion      isc_consttextregion_t;  /*%< Const Text Region */
00051 typedef struct isc_counter              isc_counter_t;          /*%< Counter */
00052 typedef isc_int16_t                     isc_dscp_t;             /*%< Diffserv code point */
00053 typedef struct isc_entropy              isc_entropy_t;          /*%< Entropy */
00054 typedef struct isc_entropysource        isc_entropysource_t;    /*%< Entropy Source */
00055 typedef struct isc_event                isc_event_t;            /*%< Event */
00056 typedef ISC_LIST(isc_event_t)           isc_eventlist_t;        /*%< Event List */
00057 typedef unsigned int                    isc_eventtype_t;        /*%< Event Type */
00058 typedef isc_uint32_t                    isc_fsaccess_t;         /*%< FS Access */
00059 typedef struct isc_hash                 isc_hash_t;             /*%< Hash */
00060 typedef struct isc_httpd                isc_httpd_t;            /*%< HTTP client */
00061 typedef void (isc_httpdfree_t)(isc_buffer_t *, void *);         /*%< HTTP free function */
00062 typedef struct isc_httpdmgr             isc_httpdmgr_t;         /*%< HTTP manager */
00063 typedef struct isc_httpdurl             isc_httpdurl_t;         /*%< HTTP URL */
00064 typedef void (isc_httpdondestroy_t)(void *);                    /*%< Callback on destroying httpd */
00065 typedef struct isc_interface            isc_interface_t;        /*%< Interface */
00066 typedef struct isc_interfaceiter        isc_interfaceiter_t;    /*%< Interface Iterator */
00067 typedef struct isc_interval             isc_interval_t;         /*%< Interval */
00068 typedef struct isc_lex                  isc_lex_t;              /*%< Lex */
00069 typedef struct isc_log                  isc_log_t;              /*%< Log */
00070 typedef struct isc_logcategory          isc_logcategory_t;      /*%< Log Category */
00071 typedef struct isc_logconfig            isc_logconfig_t;        /*%< Log Configuration */
00072 typedef struct isc_logmodule            isc_logmodule_t;        /*%< Log Module */
00073 typedef struct isc_mem                  isc_mem_t;              /*%< Memory */
00074 typedef struct isc_mempool              isc_mempool_t;          /*%< Memory Pool */
00075 typedef struct isc_msgcat               isc_msgcat_t;           /*%< Message Catalog */
00076 typedef struct isc_ondestroy            isc_ondestroy_t;        /*%< On Destroy */
00077 typedef struct isc_netaddr              isc_netaddr_t;          /*%< Net Address */
00078 typedef struct isc_portset              isc_portset_t;          /*%< Port Set */
00079 typedef struct isc_quota                isc_quota_t;            /*%< Quota */
00080 typedef struct isc_random               isc_random_t;           /*%< Random */
00081 typedef struct isc_ratelimiter          isc_ratelimiter_t;      /*%< Rate Limiter */
00082 typedef struct isc_region               isc_region_t;           /*%< Region */
00083 typedef isc_uint64_t                    isc_resourcevalue_t;    /*%< Resource Value */
00084 typedef unsigned int                    isc_result_t;           /*%< Result */
00085 typedef struct isc_rwlock               isc_rwlock_t;           /*%< Read Write Lock */
00086 typedef struct isc_sockaddr             isc_sockaddr_t;         /*%< Socket Address */
00087 typedef struct isc_socket               isc_socket_t;           /*%< Socket */
00088 typedef struct isc_socketevent          isc_socketevent_t;      /*%< Socket Event */
00089 typedef struct isc_socketmgr            isc_socketmgr_t;        /*%< Socket Manager */
00090 typedef struct isc_stats                isc_stats_t;            /*%< Statistics */
00091 typedef int                             isc_statscounter_t;     /*%< Statistics Counter */
00092 typedef struct isc_symtab               isc_symtab_t;           /*%< Symbol Table */
00093 typedef struct isc_task                 isc_task_t;             /*%< Task */
00094 typedef ISC_LIST(isc_task_t)            isc_tasklist_t;         /*%< Task List */
00095 typedef struct isc_taskmgr              isc_taskmgr_t;          /*%< Task Manager */
00096 typedef struct isc_textregion           isc_textregion_t;       /*%< Text Region */
00097 typedef struct isc_time                 isc_time_t;             /*%< Time */
00098 typedef struct isc_timer                isc_timer_t;            /*%< Timer */
00099 typedef struct isc_timermgr             isc_timermgr_t;         /*%< Timer Manager */
00100 
00101 typedef void (*isc_taskaction_t)(isc_task_t *, isc_event_t *);
00102 typedef int (*isc_sockfdwatch_t)(isc_task_t *, isc_socket_t *, void *, int);
00103 
00104 /* The following cannot be listed alphabetically due to forward reference */
00105 typedef isc_result_t (isc_httpdaction_t)(const char *url,
00106                                          isc_httpdurl_t *urlinfo,
00107                                          const char *querystring,
00108                                          const char *headers,
00109                                          void *arg,
00110                                          unsigned int *retcode,
00111                                          const char **retmsg,
00112                                          const char **mimetype,
00113                                          isc_buffer_t *body,
00114                                          isc_httpdfree_t **freecb,
00115                                          void **freecb_args);
00116 typedef isc_boolean_t (isc_httpdclientok_t)(const isc_sockaddr_t *, void *);
00117 
00118 /*% Resource */
00119 typedef enum {
00120         isc_resource_coresize = 1,
00121         isc_resource_cputime,
00122         isc_resource_datasize,
00123         isc_resource_filesize,
00124         isc_resource_lockedmemory,
00125         isc_resource_openfiles,
00126         isc_resource_processes,
00127         isc_resource_residentsize,
00128         isc_resource_stacksize
00129 } isc_resource_t;
00130 
00131 /*% Statistics formats (text file or XML) */
00132 typedef enum {
00133         isc_statsformat_file,
00134         isc_statsformat_xml,
00135         isc_statsformat_json
00136 } isc_statsformat_t;
00137 
00138 #endif /* ISC_TYPES_H */

Generated on Tue Apr 28 17:41:04 2015 by Doxygen 1.5.4 for BIND9 Internals 9.11.0pre-alpha