diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-12-03 22:23:02 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-12-03 22:23:02 +0000 |
commit | 3e0665404062ebdc13e6d631acd8da6375d06d4d (patch) | |
tree | 02995a0926f2bd0e33b5eb116c58a6fc4986652c | |
parent | 2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-3e0665404062ebdc13e6d631acd8da6375d06d4d.tar.bz2 |
2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com>
* cpu_supplement/arm.t, cpu_supplement/i386.t, cpu_supplement/m68k.t,
cpu_supplement/mips.t, cpu_supplement/powerpc.t, cpu_supplement/sh.t,
cpu_supplement/sparc.t, cpu_supplement/tic4x.t, user/conf.t: Moved
most of the remaining CPU Table fields to the Configuration Table.
This included pretasking_hook, predriver_hook, postdriver_hook,
idle_task, do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
Diffstat (limited to '')
-rw-r--r-- | doc/ChangeLog | 12 | ||||
-rw-r--r-- | doc/cpu_supplement/arm.t | 70 | ||||
-rw-r--r-- | doc/cpu_supplement/i386.t | 66 | ||||
-rw-r--r-- | doc/cpu_supplement/m68k.t | 60 | ||||
-rw-r--r-- | doc/cpu_supplement/mips.t | 64 | ||||
-rw-r--r-- | doc/cpu_supplement/powerpc.t | 63 | ||||
-rw-r--r-- | doc/cpu_supplement/sh.t | 63 | ||||
-rw-r--r-- | doc/cpu_supplement/sparc.t | 61 | ||||
-rw-r--r-- | doc/cpu_supplement/tic4x.t | 65 | ||||
-rw-r--r-- | doc/user/conf.t | 109 |
10 files changed, 121 insertions, 512 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index b9e61de3ad..c8aa90775e 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,15 @@ +2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com> + + * cpu_supplement/arm.t, cpu_supplement/i386.t, cpu_supplement/m68k.t, + cpu_supplement/mips.t, cpu_supplement/powerpc.t, cpu_supplement/sh.t, + cpu_supplement/sparc.t, cpu_supplement/tic4x.t, user/conf.t: Moved + most of the remaining CPU Table fields to the Configuration Table. + This included pretasking_hook, predriver_hook, postdriver_hook, + idle_task, do_zero_of_workspace, extra_mpci_receive_server_stack, + stack_allocate_hook, and stack_free_hook. As a side-effect of this + effort some multiprocessing code was made conditional and some style + clean up occurred. + 2007-11-29 Glenn Humphrey <glenn.humphrey@OARcorp.com> * develenv/direct.t, develenv/sample.t: Corrected various errors. diff --git a/doc/cpu_supplement/arm.t b/doc/cpu_supplement/arm.t index 91e9f23286..757b70fbf6 100644 --- a/doc/cpu_supplement/arm.t +++ b/doc/cpu_supplement/arm.t @@ -514,82 +514,16 @@ here: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; - unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); + uint32_t interrupt_stack_size; /* end of fields required on all CPUs */ - - /* XXX CPU family dependent stuff */ @} rtems_cpu_table; @end group @end example -@table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. - +@table @code @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - -@item XXX -is where the CPU family dependent stuff goes. - @end table diff --git a/doc/cpu_supplement/i386.t b/doc/cpu_supplement/i386.t index d63b8e4090..3ca07b3405 100644 --- a/doc/cpu_supplement/i386.t +++ b/doc/cpu_supplement/i386.t @@ -602,83 +602,17 @@ BSP. The C structure definition is given here: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - uint32_t idle_task_stack_size; uint32_t interrupt_stack_size; - uint32_t extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ - @} rtems_cpu_table; @end group @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - @end table - -The contents of the i386 Interrupt Descriptor Table -are discussed in Intel's i386 User's Manual. Structure -definitions for the i386 IDT is provided by including the file -rtems.h. - diff --git a/doc/cpu_supplement/m68k.t b/doc/cpu_supplement/m68k.t index 14963d8a89..c3c014dd1a 100644 --- a/doc/cpu_supplement/m68k.t +++ b/doc/cpu_supplement/m68k.t @@ -692,77 +692,17 @@ here: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ @} rtems_cpu_table; @end group @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - @end table diff --git a/doc/cpu_supplement/mips.t b/doc/cpu_supplement/mips.t index 0946fbfafd..385acb592b 100644 --- a/doc/cpu_supplement/mips.t +++ b/doc/cpu_supplement/mips.t @@ -596,81 +596,17 @@ here: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ - @} rtems_cpu_table; @end group @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - -@item XXX -is where the CPU family dependent stuff goes. - @end table diff --git a/doc/cpu_supplement/powerpc.t b/doc/cpu_supplement/powerpc.t index 6e3f6bc37b..d8073e3ccf 100644 --- a/doc/cpu_supplement/powerpc.t +++ b/doc/cpu_supplement/powerpc.t @@ -912,76 +912,15 @@ shown below: @example typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ -@}; +@} rtems_cpu_table; @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - @end table - diff --git a/doc/cpu_supplement/sh.t b/doc/cpu_supplement/sh.t index 0cf6123131..252c44787c 100644 --- a/doc/cpu_supplement/sh.t +++ b/doc/cpu_supplement/sh.t @@ -604,80 +604,17 @@ here: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ @} rtems_cpu_table; @end group @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - -@item XXX -is where the CPU family dependent stuff goes. - @end table diff --git a/doc/cpu_supplement/sparc.t b/doc/cpu_supplement/sparc.t index a574685e7c..844fa9933e 100644 --- a/doc/cpu_supplement/sparc.t +++ b/doc/cpu_supplement/sparc.t @@ -1050,78 +1050,17 @@ shown below: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ - @} rtems_cpu_table; @end group @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - @end table diff --git a/doc/cpu_supplement/tic4x.t b/doc/cpu_supplement/tic4x.t index 9c276eae5c..98bdfa28c5 100644 --- a/doc/cpu_supplement/tic4x.t +++ b/doc/cpu_supplement/tic4x.t @@ -807,82 +807,17 @@ here: @example @group typedef struct @{ - void (*pretasking_hook)( void ); - void (*predriver_hook)( void ); - void (*postdriver_hook)( void ); - void (*idle_task)( void ); - boolean do_zero_of_workspace; - unsigned32 idle_task_stack_size; unsigned32 interrupt_stack_size; - unsigned32 extra_mpci_receive_server_stack; - void * (*stack_allocate_hook)( unsigned32 ); - void (*stack_free_hook)( void* ); /* end of fields required on all CPUs */ - - /* XXX CPU family dependent stuff */ @} rtems_cpu_table; @end group @end example @table @code -@item pretasking_hook -is the address of the user provided routine which is invoked -once RTEMS APIs are initialized. This routine will be invoked -before any system tasks are created. Interrupts are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item predriver_hook -is the address of the user provided -routine that is invoked immediately before the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item postdriver_hook -is the address of the user provided -routine that is invoked immediately after the -the device drivers and MPCI are initialized. RTEMS -initialization is complete but interrupts and tasking are disabled. -This field may be NULL to indicate that the hook is not utilized. - -@item idle_task -is the address of the optional user -provided routine which is used as the system's IDLE task. If -this field is not NULL, then the RTEMS default IDLE task is not -used. This field may be NULL to indicate that the default IDLE -is to be used. - -@item do_zero_of_workspace -indicates whether RTEMS should -zero the Workspace as part of its initialization. If set to -TRUE, the Workspace is zeroed. Otherwise, it is not. - -@item idle_task_stack_size -is the size of the RTEMS idle task stack in bytes. -If this number is less than MINIMUM_STACK_SIZE, then the -idle task's stack will be MINIMUM_STACK_SIZE in byte. @item interrupt_stack_size is the size of the RTEMS allocated interrupt stack in bytes. This value must be at least as large as MINIMUM_STACK_SIZE. -@item extra_mpci_receive_server_stack -is the extra stack space allocated for the RTEMS MPCI receive server task -in bytes. The MPCI receive server may invoke nearly all directives and -may require extra stack space on some targets. - -@item stack_allocate_hook -is the address of the optional user provided routine which allocates -memory for task stacks. If this hook is not NULL, then a stack_free_hook -must be provided as well. - -@item stack_free_hook -is the address of the optional user provided routine which frees -memory for task stacks. If this hook is not NULL, then a stack_allocate_hook -must be provided as well. - -@item XXX -is where the CPU family dependent stuff goes. - @end table diff --git a/doc/user/conf.t b/doc/user/conf.t index 7ce6a5d577..e2df439307 100644 --- a/doc/user/conf.t +++ b/doc/user/conf.t @@ -223,9 +223,29 @@ of time between clock ticks. By default, this is set to 10000 microseconds. @findex CONFIGURE_TICKS_PER_TIMESLICE -@item @code{CONFIGURE_TICKS_PER_TIMESLICE} is the number -of ticks per each task's timeslice. By default, this is -50. +@item @code{CONFIGURE_TICKS_PER_TIMESLICE} is the length +of the timeslice quantum in ticks for each task. By +default, this is 50. + +@findex CONFIGURE_TASK_STACK_ALLOCATOR +@item @code{CONFIGURE_TASK_STACK_ALLOCATOR} +may point to a user provided routine to allocate task stacks. +The default value for this field is NULL which indicates that +task stacks will be allocated from the RTEMS Workspace. + +@findex CONFIGURE_TASK_STACK_DEALLOCATOR +@item @code{CONFIGURE_TASK_STACK_DEALLOCATOR} +may point to a user provided routine to free task stacks. +The default value for this field is NULL which indicates that +task stacks will be allocated from the RTEMS Workspace. + +@findex CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY +@item @code{CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY} +indicates whether RTEMS should zero the RTEMS Workspace and +C Program Heap as part of its initialization. If set to +TRUE, the Workspace is zeroed. Otherwise, it is not. +Unless overridden by the BSP, the default value for this +field is FALSE. @findex CONFIGURE_MESSAGE_BUFFER_MEMORY @item @code{CONFIGURE_MESSAGE_BUFFER_MEMORY} is set to the number of @@ -251,6 +271,33 @@ The default value is 0. NOTE: The required size of the Executive RAM Work Area is calculated automatically when using the @code{rtems/confdefs.h} mechanism. +@c +@c +@c +@subsection Idle Task Configuration + +This section defines the IDLE task related configuration parameters +supported by @code{rtems/confdefs.h}. + +@itemize @bullet + +@fnindex CONFIGURE_IDLE_TASK_BODY +@item @code{CONFIGURE_IDLE_TASK_BODY} is set to the method name +corresponding to the application specific IDLE thread body. If +not specified, the BSP or RTEMS default IDLE thread body will +be used. The default value is NULL. + +@fnindex CONFIGURE_IDLE_TASK_STACK_SIZE +@item @code{CONFIGURE_IDLE_TASK_STACK_SIZE} is set to the +desired stack size for the IDLE task. If not specified, +the IDLE task will have a stack of minimum size. The default +value is @code{RTEMS_MINIMUM_STACK_SIZE}. + +@end itemize + +@c +@c +@c @subsection Device Driver Table This section defines the configuration parameters related @@ -739,14 +786,22 @@ typedef struct @{ uint32_t maximum_extensions; uint32_t microseconds_per_tick; uint32_t ticks_per_timeslice; + void (*idle_task)( void ); + uint32_t idle_task_stack_size; + void * (*stack_allocate_hook)( uint32_t ); + void (*stack_free_hook)( void * ); + boolean do_zero_of_workspace; uint32_t maximum_drivers; uint32_t number_of_device_drivers; rtems_driver_address_table *Device_driver_table; uint32_t number_of_initial_extensions; rtems_extensions_table *User_extension_table; +#if defined(RTEMS_MULTIPROCESSING) rtems_multiprocessing_table *User_multiprocessing_table; +#endif rtems_api_configuration_table *RTEMS_api_configuration; posix_api_configuration_table *POSIX_api_configuration; + itron_api_configuration *ITRON_api_configuration; @} rtems_configuration_table; @end group @end example @@ -790,6 +845,49 @@ When using the @code{rtems/confdefs.h} mechanism for configuring an RTEMS application, the value for this field corresponds to the setting of the macro @code{CONFIGURE_TICKS_PER_TIMESLICE}. +@item idle_task +is the address of the optional user +provided routine which is used as the system's IDLE task. If +this field is not NULL, then the RTEMS default IDLE task is not +used. This field may be NULL to indicate that the default IDLE +is to be used. When using the @code{rtems/confdefs.h} mechanism +for configuring an RTEMS application, the value for this field +corresponds to the setting of the macro @code{CONFIGURE_IDLE_TASK_BODY}. + +@item idle_task_stack_size +is the size of the RTEMS idle task stack in bytes. +If this number is less than MINIMUM_STACK_SIZE, then the +idle task's stack will be MINIMUM_STACK_SIZE in byte. +When using the @code{rtems/confdefs.h} mechanism +for configuring an RTEMS application, the value for this field +corresponds to the setting of the macro +@code{CONFIGURE_IDLE_TASK_STACK_SIZE}. + +@item stack_allocate_hook +may point to a user provided routine to allocate task stacks. +The default is to allocate task stacks from the RTEMS Workspace. +When using the @code{rtems/confdefs.h} mechanism +for configuring an RTEMS application, the value for this field +corresponds to the setting of the macro +@code{CONFIGURE_TASK_STACK_ALLOCATOR}. + +@item stack_free_hook +may point to a user provided routine to free task stacks. +The default is to allocate task stacks from the RTEMS Workspace. +When using the @code{rtems/confdefs.h} mechanism +for configuring an RTEMS application, the value for this field +corresponds to the setting of the macro +@code{CONFIGURE_TASK_STACK_DEALLOCATOR}. + +@item do_zero_of_workspace +indicates whether RTEMS should zero the RTEMS Workspace and +C Program Heap as part of its initialization. If set to +TRUE, the Workspace is zeroed. Otherwise, it is not. +When using the @code{rtems/confdefs.h} mechanism +for configuring an RTEMS application, the value for this field +corresponds to the setting of the macro +@code{CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY}. + @item maximum_drivers is the maximum number of device drivers that can be registered. When using the @code{rtems/confdefs.h} mechanism for configuring @@ -1524,6 +1622,7 @@ typedef struct @{ uint32_t maximum_nodes; uint32_t maximum_global_objects; uint32_t maximum_proxies; + uint32_t extra_mpci_receive_server_stack; rtems_mpci_table *User_mpci_table; @} rtems_multiprocessing_table; @end example @@ -1581,6 +1680,10 @@ to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_PROXIES}. If not defined by the application, then the @code{CONFIGURE_MP_MAXIMUM_PROXIES} macro defaults to the value 32. +@item extra_mpci_receive_server_stack +is the extra stack space allocated for the RTEMS MPCI receive server task +in bytes. The MPCI receive server may invoke nearly all directives and +may require extra stack space on some targets. @item User_mpci_table is the address of the Multiprocessor Communications Interface |