1 /*      $OpenBSD: dispatch.h,v 1.9 2002/01/11 13:39:36 markus Exp $     */
   2 
   3 #ifndef _DISPATCH_H
   4 #define _DISPATCH_H
   5 
   6 #pragma ident   "%Z%%M% %I%     %E% SMI"
   7 
   8 #ifdef __cplusplus
   9 extern "C" {
  10 #endif
  11 
  12 
  13 /*
  14  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  15  *
  16  * Redistribution and use in source and binary forms, with or without
  17  * modification, are permitted provided that the following conditions
  18  * are met:
  19  * 1. Redistributions of source code must retain the above copyright
  20  *    notice, this list of conditions and the following disclaimer.
  21  * 2. Redistributions in binary form must reproduce the above copyright
  22  *    notice, this list of conditions and the following disclaimer in the
  23  *    documentation and/or other materials provided with the distribution.
  24  *
  25  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  26  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  27  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  28  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  29  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  30  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  31  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  32  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  33  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  34  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  35  */
  36 enum {
  37         DISPATCH_BLOCK,
  38         DISPATCH_NONBLOCK
  39 };
  40 
  41 typedef void dispatch_fn(int, u_int32_t, void *);
  42 
  43 void     dispatch_init(dispatch_fn *);
  44 void     dispatch_set(int, dispatch_fn *);
  45 void     dispatch_range(u_int, u_int, dispatch_fn *);
  46 void     dispatch_run(int, int *, void *);
  47 void     dispatch_protocol_error(int, u_int32_t, void *);
  48 void     dispatch_protocol_ignore(int, u_int32_t, void *);
  49 
  50 #ifdef __cplusplus
  51 }
  52 #endif
  53 
  54 #endif /* _DISPATCH_H */