source: rtems/cpukit/rtems/include/rtems/rtems/status.h @ ffe316d

4.104.114.84.95
Last change on this file since ffe316d was ffe316d, checked in by Joel Sherrill <joel.sherrill@…>, on 12/02/96 at 22:50:33

Suggested changes from Mark Jordan which eliminate warnings and errors
he received using the Microtec C++ compiler. Most of these are
either missing casts from/to (void *), heavy handed use of enumerated
types, or simply assumed conversions. There is at least one actual
bug in an error path in thread.c in which the wrong argument was
passed to _Thread_Stack_Free and was not being caught by gcc.

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*  status.h
2 *
3 *  This include file contains the status codes returned from the
4 *  executive directives.
5 *
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16
17#ifndef __RTEMS_STATUS_h
18#define __RTEMS_STATUS_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/* types */
25
26/* enumerated constants */
27
28typedef enum {
29  RTEMS_SUCCESSFUL               =  0, /* successful completion */
30  RTEMS_TASK_EXITTED             =  1, /* returned from a thread */
31  RTEMS_MP_NOT_CONFIGURED        =  2, /* multiprocessing not configured */
32  RTEMS_INVALID_NAME             =  3, /* invalid object name */
33  RTEMS_INVALID_ID               =  4, /* invalid object id */
34  RTEMS_TOO_MANY                 =  5, /* too many */
35  RTEMS_TIMEOUT                  =  6, /* timed out waiting */
36  RTEMS_OBJECT_WAS_DELETED       =  7, /* object deleted while waiting */
37  RTEMS_INVALID_SIZE             =  8, /* specified size was invalid */
38  RTEMS_INVALID_ADDRESS          =  9, /* address specified is invalid */
39  RTEMS_INVALID_NUMBER           = 10, /* number was invalid */
40  RTEMS_NOT_DEFINED              = 11, /* item has not been initialized */
41  RTEMS_RESOURCE_IN_USE          = 12, /* resources still outstanding */
42  RTEMS_UNSATISFIED              = 13, /* request not satisfied */
43  RTEMS_INCORRECT_STATE          = 14, /* thread is in wrong state */
44  RTEMS_ALREADY_SUSPENDED        = 15, /* thread already in state */
45  RTEMS_ILLEGAL_ON_SELF          = 16, /* illegal on calling thread */
46  RTEMS_ILLEGAL_ON_REMOTE_OBJECT = 17, /* illegal for remote object */
47  RTEMS_CALLED_FROM_ISR          = 18, /* called from wrong environment */
48  RTEMS_INVALID_PRIORITY         = 19, /* invalid thread priority */
49  RTEMS_INVALID_CLOCK            = 20, /* invalid date/time */
50  RTEMS_INVALID_NODE             = 21, /* invalid node id */
51  RTEMS_NOT_CONFIGURED           = 22, /* directive not configured */
52  RTEMS_NOT_OWNER_OF_RESOURCE    = 23, /* not owner of resource */
53  RTEMS_NOT_IMPLEMENTED          = 24, /* directive not implemented */
54  RTEMS_INTERNAL_ERROR           = 25, /* RTEMS inconsistency detected */
55  RTEMS_NO_MEMORY                = 26, /* could not get enough memory */
56  RTEMS_PROXY_BLOCKING           = 27  /* internal error only */
57} rtems_status_code;
58
59#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL
60#define RTEMS_STATUS_CODES_LAST  RTEMS_PROXY_BLOCKING
61
62extern rtems_status_code _Status_Object_name_errors_to_status[];
63
64#ifdef RTEMS_API_INIT
65rtems_status_code _Status_Object_name_errors_to_status[] = {
66  RTEMS_SUCCESSFUL,      /* OBJECTS_SUCCESSFUL */
67  RTEMS_INVALID_NAME,    /* OBJECTS_INVALID_NAME */
68  RTEMS_INVALID_NODE     /* OBJECTS_INVALID_NODE */
69};
70#endif
71
72/*
73 *  Applications are allowed to use the macros to compare status codes.
74 */
75
76#include <rtems/rtems/status.inl>
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif
83/* end of include file */
Note: See TracBrowser for help on using the repository browser.