diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-03-17 16:01:03 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-03-17 16:01:03 +0000 |
commit | f4a8ee1c55788aeb053ede7571b07906a9847a45 (patch) | |
tree | 7417825a9a351aaf100374b08d314756523bef5f /c/src/tests/samples/unlimited/system.h | |
parent | Suggested rephrasing of inline versus macros option by Chris Johns (diff) | |
download | rtems-f4a8ee1c55788aeb053ede7571b07906a9847a45.tar.bz2 |
Unlimited objects patch from Chris Johns <ccj@acm.org>. Email follows:
First, the unlimited patch. I have compiled the unlmited patch for the
Linux posix BSP only and it seems to work cleanly. I would like a really
major application run on this change before commiting as the changes are
very core and significant. I am currently building all the tests to run.
I have no targets suitable to test on at the moment.
I have tested the patch for inline functions and macros.
Turning macros on has found some core bugs. I have fixed these but have
not run all the tests. Please review the patch for these changes. They
are:
1) The conditional compilation for MP support broke the core messages
code. You cannot embed a conditional macro in another macro. The Send
and Urgent Send calls are macros.
2) User extensions handler initialisation now has two parameters. I have
updated the macros to support the extra parameter.
The patch also contains the gcc-target-default.cfg fix required to build
the kernel. More of a by product than a fix for you.
Diffstat (limited to 'c/src/tests/samples/unlimited/system.h')
-rw-r--r-- | c/src/tests/samples/unlimited/system.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/c/src/tests/samples/unlimited/system.h b/c/src/tests/samples/unlimited/system.h new file mode 100644 index 0000000000..51a2bcee88 --- /dev/null +++ b/c/src/tests/samples/unlimited/system.h @@ -0,0 +1,93 @@ +/* system.h + * + * This include file contains information that is included in every + * function in the test set. + * + * COPYRIGHT (c) 1989-1997. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * The license and distribution terms for this file may in + * the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include <rtems.h> + +#define TASK_ALLOCATION_SIZE (5) +#define CONFIGURE_MAXIMUM_TASKS rtems_resource_unlimited(TASK_ALLOCATION_SIZE) + +#include <tmacros.h> + +/* functions */ + +rtems_task Init( + rtems_task_argument argument +); + +rtems_task test_task( + rtems_task_argument my_number +); + +void +destory_all_tasks( + const char *who +); + +boolean status_code_bad( + rtems_status_code status_code +); + +void test1(); +void test2(); +void test3(); + +/* configuration information */ + +#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER + +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE + +#include <confdefs.h> + +/* global variables */ + +TEST_EXTERN rtems_id Global_variable; /* example global variable */ + +/* + * Keep track of the task id's created, use a large array. + */ + +#define MAX_TASKS (1000) +#define TASK_INDEX_OFFSET (1) + +extern rtems_id task_id[MAX_TASKS]; + +/* + * Increment the task name. + */ + +#define NEXT_TASK_NAME(c1, c2, c3, c4) \ + if (c4 == '9') { \ + if (c3 == '9') { \ + if (c2 == 'z') { \ + if (c1 == 'z') { \ + printf("not enough task letters for names !!!\n"); \ + exit( 1 ); \ + } else \ + c1++; \ + c2 = 'a'; \ + } else \ + c2++; \ + c3 = '0'; \ + } else \ + c3++; \ + c4 = '0'; \ + } \ + else \ + c4++ \ + + +/* end of include file */ |