1 /* --COPYRIGHT--,ESD
2 * Copyright (c) 2008 Texas Instruments. All rights reserved.
3 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License
5 * v. 1.0 which accompanies this distribution. The Eclipse Public License is
6 * available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
7 * Distribution License is available at
8 * http://www.eclipse.org/org/documents/edl-v10.php.
9 *
10 * Contributors:
11 * Texas Instruments - initial implementation
12 * --/COPYRIGHT--*/
13 /*
14 * ======== ISystemSupport.xdc ========
15 *
16 *! Revision History
17 *! ================
18 *! 08-Jun-2007 nitya abort() takes a String
19 *! 15-May-2007 toddm Added flush into interface.
20 *! 28-Nov-2006 toddm Start revision history
21 */
22 package xdc.runtime;
23
24 /*!
25 * ======== ISystemSupport ========
26 * Interface to core system functions.
27 *
28 * Each embedded system requires implementations of these functions but
29 * the behavior of these functions varies depending on the context of the
30 * embedded system. For example, some systems will implement `exit()` as
31 * an infinite loop because the executable is designed to *never* exit.
32 */
33 interface ISystemSupport {
34
35 /*!
36 * ======== abort ========
37 * Backend for `{@link System#abort()}`
38 *
39 * This function is called by `{@link System#abort()}` prior to calling
40 * the ANSI C Standard library function `abort()`. So, to ensure the
41 * abort processing of the system's ANSI C Standard library completes,
42 * this function should return to its caller.
43 *
44 * @param(str) message to output just prior to aborting
45 *
46 * If non-`NULL`, this string should be output just prior to
47 * terminating.
48 */
49 Void abort(String str);
50
51 /*!
52 * ======== exit ========
53 * Backend for `{@link System#exit()}`
54 *
55 * This function is called as part the normal "atexit" processing
56 * performed by the ANSI C Standard Library's `exit()` function;
57 * `{@link System#exit()}` directly calls ANSI `exit()`.
58 *
59 * This function is called after all "atexit" handlers bound via
60 * `{@link System#atexit()}` are run and it
61 * is always called while "inside" the the `System` gate.
62 *
63 * To ensure that all exit processing of the system's ANSI C
64 * Standard Library completes, this function should return to its caller.
65 * Exit handlers bound using the ANSI C Standard Library `atexit()`
66 * function may run before or after this function.
67 *
68 * @param(stat) status value passed to all "atexit" handlers
69 *
70 * This value is passed to all "atexit" handles bound via
71 * `{@link System#atexit()}`. If the application exits via the
72 * ANSI C Standard `exit()` function rather than via System_exit(),
73 * `stat` will be equal to `{@link System#STATUS_UNKNOWN}`.
74 *
75 * @see System#atexit
76 */
77 Void exit(Int stat);
78
79 /*!
80 * ======== flush ========
81 * Backend for `{@link System#flush()}`
82 *
83 * This function is simply called by `{@link System#flush System_flush}`
84 * to output any characters buffered by the underlying `SystemSupport`
85 * module to an output device.
86 */
87 Void flush();
88
89 /*!
90 * ======== putch ========
91 * Backend for `{@link System#printf()}` and `{@link System#putch()}`
92 *
93 * Output a single character. This function is called by
94 * `{@link System#printf System_printf()}` to write each character
95 * of formated output specified by its arguments.
96 97 *
98 * @param(ch) character to output
99 */
100 Void putch(Char ch);
101
102 /*!
103 * ======== ready ========
104 * Test if character output can proceed
105 *
106 * This function is called by `{@link System}` prior to performing
107 * any character output . If this function returns `FALSE`, the `System`
108 * functions that would normally call `putch()` simply return
109 * (with an appropriate error status) without ever calling
110 * `{@link #putch}`.
111 */
112 Bool ready();
113 }
114 /*
115 * @(#) xdc.runtime; 2, 0, 0, 0,236; 12-18-2009 12:27:14; /db/ztree/library/trees/xdc/xdc-u16x/src/packages/
116 */
117