The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/kern/eventcount.h

Version: -  FREEBSD  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-2  -  FREEBSD-11-1  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-4  -  FREEBSD-10-3  -  FREEBSD-10-2  -  FREEBSD-10-1  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-3  -  FREEBSD-9-2  -  FREEBSD-9-1  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-4  -  FREEBSD-8-3  -  FREEBSD-8-2  -  FREEBSD-8-1  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-4  -  FREEBSD-7-3  -  FREEBSD-7-2  -  FREEBSD-7-1  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-4  -  FREEBSD-6-3  -  FREEBSD-6-2  -  FREEBSD-6-1  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-5  -  FREEBSD-5-4  -  FREEBSD-5-3  -  FREEBSD-5-2  -  FREEBSD-5-1  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  xnu-1456.1.26  -  xnu-1699.24.8  -  xnu-2050.18.24  -  OPENSOLARIS  -  minix-3-1-1 
SearchContext: -  none  -  3  -  10 

    1 /* 
    2  * Mach Operating System
    3  * Copyright (c) 1993-1987 Carnegie Mellon University
    4  * All Rights Reserved.
    5  * 
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  * 
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  * 
   16  * Carnegie Mellon requests users of this software to return to
   17  * 
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  * 
   23  * any improvements or extensions that they make and grant Carnegie Mellon
   24  * the rights to redistribute these changes.
   25  */
   26 /*
   27  * HISTORY
   28  * $Log:        eventcount.h,v $
   29  * Revision 2.6  93/08/10  15:12:05  mrt
   30  *      Changed ev_id to natural_t to match the changes in
   31  *      eventcount.c
   32  *      [93/08/03            mrt]
   33  * 
   34  * Revision 2.5  93/01/24  13:18:53  danner
   35  *      Prototypes, evc_notify_abort.
   36  *      [93/01/22            danner]
   37  * 
   38  * Revision 2.4  93/01/14  17:34:03  danner
   39  *      Allow count to go negative.
   40  *      [92/12/15            af]
   41  * 
   42  * Revision 2.3  92/01/03  20:40:10  dbg
   43  *      Added id field to make user-safe.  Since we have not
   44  *      decided what the user-interface will look like (and
   45  *      we are using it nonetheless) do not define anything.
   46  *      [91/12/27            af]
   47  * 
   48  * Revision 2.2  91/12/13  14:54:47  jsb
   49  *      Created.
   50  *      [91/11/01            af]
   51  * 
   52  */
   53 /*
   54  *      File:   eventcount.c
   55  *      Author: Alessandro Forin
   56  *      Date:   10/91
   57  *
   58  *      Eventcounters, for user-level drivers synchronization
   59  *
   60  */
   61 
   62 #ifndef _KERN_EVENTCOUNT_H_
   63 #define _KERN_EVENTCOUNT_H_     1
   64 
   65 /* kernel visible only */
   66 
   67 typedef struct evc {
   68         int             count;
   69         thread_t        waiting_thread;
   70         natural_t       ev_id;
   71         struct evc      *sanity;
   72         decl_simple_lock_data(, lock)
   73 } *evc_t;
   74 
   75 extern  void    evc_init(evc_t ev),
   76                 evc_destroy(evc_t ev),
   77                 evc_signal(evc_t ev),
   78                 evc_notify_abort(thread_t thread);
   79 
   80 /* kernel and user visible */
   81 
   82 extern  kern_return_t   evc_wait(natural_t ev_id);
   83 
   84 #endif  /* _KERN_EVENTCOUNT_H_ */

Cache object: c14fbf61a5d0f8e8a97dbfaeb7a53e25


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.