1 /*
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 * */
13 /*
14 * ======== ISystemSupport.xdc ========
15 *
16 */
17 package xdc.runtime;
18
19 /*!
20 * ======== ISystemSupport ========
21 * Interface to core system functions.
22 *
23 * Each embedded system requires implementations of these functions but
24 * the behavior of these functions varies depending on the context of the
25 * embedded system. For example, some systems will implement `exit()` as
26 * an infinite loop because the executable is designed to *never* exit.
27 */
28 interface ISystemSupport {
29
30 /*!
31 * ======== abort ========
32 * Backend for `{@link System#abort()}`
33 *
34 * This function is called by `{@link System#abort()}` prior to calling
35 * the ANSI C Standard library function `abort()`. So, to ensure the
36 * abort processing of the system's ANSI C Standard library completes,
37 * this function should return to its caller.
38 *
39 * @param(str) message to output just prior to aborting
40 *
41 * If non-`NULL`, this string should be output just prior to
42 * terminating.
43 */
44 Void abort(String str);
45
46 /*!
47 * ======== exit ========
48 * Backend for `{@link System#exit()}`
49 *
50 * This function is called as part the normal "atexit" processing
51 * performed by the ANSI C Standard Library's `exit()` function;
52 * `{@link System#exit()}` directly calls ANSI `exit()`.
53 *
54 * This function is called after all "atexit" handlers bound via
55 * `{@link System#atexit()}` are run and it
56 * is always called while "inside" the the `System` gate.
57 *
58 * To ensure that all exit processing of the system's ANSI C
59 * Standard Library completes, this function should return to its caller.
60 * Exit handlers bound using the ANSI C Standard Library `atexit()`
61 * function may run before or after this function.
62 *
63 * @param(stat) status value passed to all "atexit" handlers
64 *
65 * This value is passed to all "atexit" handles bound via
66 * `{@link System#atexit()}`. If the application exits via the
67 * ANSI C Standard `exit()` function rather than via System_exit(),
68 * `stat` will be equal to `{@link System#STATUS_UNKNOWN}`.
69 *
70 * @see System#atexit
71 */
72 Void exit(Int stat);
73
74 /*!
75 * ======== flush ========
76 * Backend for `{@link System#flush()}`
77 *
78 * This function is simply called by `{@link System#flush System_flush}`
79 * to output any characters buffered by the underlying `SystemSupport`
80 * module to an output device.
81 */
82 Void flush();
83
84 /*!
85 * ======== putch ========
86 * Backend for `{@link System#printf()}` and `{@link System#putch()}`
87 *
88 * Output a single character. This function is called by
89 * `{@link System#printf System_printf()}` to write each character
90 * of formated output specified by its arguments.
91 92 *
93 * @param(ch) character to output
94 */
95 Void putch(Char ch);
96
97 /*!
98 * ======== ready ========
99 * Test if character output can proceed
100 *
101 * This function is called by `{@link System}` prior to performing
102 * any character output . If this function returns `FALSE`, the `System`
103 * functions that would normally call `putch()` simply return
104 * (with an appropriate error status) without ever calling
105 * `{@link #putch}`.
106 */
107 Bool ready();
108 }
109 /*
110 * @(#) xdc.runtime; 2, 0, 0, 0,207; 6-9-2009 20:10:17; /db/ztree/library/trees/xdc-t50x/src/packages/
111 */
112