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/port/edf.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 enum {
    2         Maxsteps = 200 * 100 * 2,       /* 100 periods of 200 procs */
    3 
    4         /* Edf.flags field */
    5         Admitted                = 0x01,
    6         Sporadic                = 0x02,
    7         Yieldonblock            = 0x04,
    8         Sendnotes               = 0x08,
    9         Deadline                = 0x10,
   10         Yield                   = 0x20,
   11         Extratime               = 0x40,
   12 
   13         Infinity = ~0ULL,
   14 };
   15 
   16 typedef struct Edf              Edf;
   17 
   18 struct Edf {
   19         /* All times in µs */
   20         /* time intervals */
   21         long            D;              /* Deadline */
   22         long            Delta;          /* Inherited deadline */
   23         long            T;              /* period */
   24         long            C;              /* Cost */
   25         long            S;              /* Slice: time remaining in this period */
   26         /* times (only low-order bits of absolute time) */
   27         long            r;              /* (this) release time */
   28         long            d;              /* (this) deadline */
   29         long            t;              /* Start of next period, t += T at release */
   30         long            s;              /* Time at which this proc was last scheduled */
   31         /* for schedulability testing */
   32         long            testDelta;
   33         int             testtype;       /* Release or Deadline */
   34         long            testtime;
   35         Proc            *testnext;
   36         /* other */
   37         ushort          flags;
   38         Timer;
   39         /* Stats */
   40         long            edfused;
   41         long            extraused;
   42         long            aged;
   43         ulong           periods;
   44         ulong           missed;
   45 };
   46 
   47 extern Lock     edftestlock;    /* for atomic admitting/expelling */
   48 
   49 #pragma varargck        type    "t"             long
   50 #pragma varargck        type    "U"             uvlong
   51 
   52 /* Interface: */
   53 Edf*            edflock(Proc*);
   54 void            edfunlock(void);

Cache object: ae4b9ec19927e43ae6d24ffc3b629727


[ 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.