1 /*
2 * Copyright (c) 2011, Texas Instruments Incorporated
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 * */
32 /*
33 * ======== package.xdc ========
34 *
35 */
36
37 requires ti.sysbios.interfaces;
38 requires ti.sysbios.family;
39
40 /*!
41 * ======== ti.sysbios.knl ========
42 * Contains core threading modules for the SYS/BIOS kernel.
43 *
44 * Many real-time applications must perform a number of functions at the
45 * same time, often in response to external events such as the availability of
46 * data or the presence of a control signal. Both the functions and `when`
47 * they are performed are important.
48 *
49 * Such functions are called "threads". Within SYS/BIOS, the term is defined
50 * broadly to include any independent stream of instructions executed by the
51 * processor. A thread is a single point of control that can activate a
52 * function call or an interrupt service routine (ISR).
53 *
54 * SYS/BIOS enables your applications to be structured as a collection of
55 * threads. Multithreaded programs allow higher-priority threads to preempt
56 * lower-priority threads and allow various types of interaction between
57 * threads, including blocking, communication, and synchronization.
58 *
59 * SYS/BIOS provides support for several types of threads with different
60 * priorities. Each thread type has different execution and preemption
61 * characteristics. The thread types (from highest to lowest priority) are:
62 *
63 * @p(blist) 64 * - Hardware interrupts ({@link ti.sysbios.hal.Hwi}), which includes
65 * {@link ti.sysbios.hal.Timer} functions
66 * - Software interrupts ({@link ti.sysbios.knl.Swi}), which includes
67 * {@link ti.sysbios.knl.Clock} functions
68 * - Tasks ({@link ti.sysbios.knl.Task})
69 * - Background thread ({@link ti.sysbios.knl.Idle})
70 * @p 71 *
72 * The ti.sysbios.knl package also provides several modules for
73 * synchronizing threads.
74 *
75 * @p(blist) 76 * - Semaphores ({@link ti.sysbios.knl.Semaphore}) are often used to
77 * coordinate access to a shared resource
78 * among a set of competing tasks. Semaphores can be used for task
79 * synchronization and mutual exclusion. Semaphore objects can be declared
80 * as either counting or binary semaphores. The same APIs are used for
81 * both counting and binary semaphores.
82 * - Events ({@link ti.sysbios.knl.Event}) provide a means for
83 * communicating between and synchronizing
84 * threads. They are similar to Semaphores, except that they allow you
85 * to specify multiple conditions ("events") that must occur before the
86 * waiting thread returns.
87 * - Mailboxes ({@link ti.sysbios.knl.Mailbox}) can be used to pass buffers
88 * from one thread to another.
89 * A Mailbox instance can be used by multiple readers and writers.
90 * @p 91 *
92 * In addition to Semaphores, Events, and Mailboxes, you can use
93 * Gates to prevent concurrent accesses to critical regions of code.
94 * The {@link xdc.runtime.Gate} module is provided by XDCtools, but
95 * SYS/BIOS
96 * provides some additional implementations in {@link ti.sysbios.gates}.
97 */
98 package ti.sysbios.knl [2,0,0,0] {
99 module Clock;
100 module Idle;
101 module Intrinsics;
102 module Event; // Must be before Semaphore!!!
103 module Mailbox;
104 module Queue;
105 module Semaphore;
106 module Swi;
107 module Task;
108 }
109 /*
110 * @(#) ti.sysbios.knl; 2, 0, 0, 0,451; 2-2-2011 15:07:15; /db/vtree/library/trees/avala/avala-o27x/src/ xlibrary
111 112 */
113