Changeset 169502e in rtems
- Timestamp:
- 10/11/99 19:03:05 (23 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- af31f3a
- Parents:
- 0de8359
- Location:
- doc/user
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/user/Makefile
r0de8359 r169502e 37 37 $(MAKEINFO) $(PROJECT).texi 38 38 39 dvi: $(PROJECT).dvi39 dvi: dirs $(PROJECT).dvi 40 40 ps: dirs $(PROJECT).ps 41 41 pdf: dirs $(PROJECT).pdf … … 43 43 $(PROJECT).pdf: $(FILES) 44 44 $(TEXI2PDF) $(PROJECT).texi 45 cp $(PROJECT).pdf $( PDF_INSTALL)45 cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) 46 46 47 47 $(PROJECT).ps: $(PROJECT).dvi 48 48 dvips -o $(PROJECT).ps $(PROJECT).dvi 49 cp $(PROJECT).ps $( PS_INSTALL)49 cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) 50 50 51 51 $(PROJECT).dvi: $(FILES) 52 #$(TEXI2DVI) $(PROJECT).texi53 texi2dvi -V $(PROJECT).texi52 $(TEXI2DVI) $(PROJECT).texi 53 cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) 54 54 55 55 html: dirs $(FILES) … … 58 58 $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ 59 59 $(PROJECT).texi 60 61 index: 62 texindex $(PROJECT).cp $(PROJECT).vr $(PROJECT).fn \ 63 $(PROJECT).tp $(PROJECT).pg $(PROJECT).ky 60 64 61 65 clean: -
doc/user/bsp.t
r0de8359 r169502e 9 9 @chapter Board Support Packages 10 10 11 @cindex Board Support Packages 12 @cindex BSPs 13 11 14 @section Introduction 15 16 @cindex BSP, definition 12 17 13 18 A board support package (BSP) is a collection of -
doc/user/c_user.texi
r0de8359 r169502e 38 38 @end ignore 39 39 40 @c @syncodeindex fn cp 40 41 @c variable substitution info: 41 42 @c … … 155 156 @unnumbered Command and Variable Index 156 157 157 There are currently no Command and Variable Index entries. 158 @printindex fn 158 159 159 @c @printindex fn 160 @c There are currently no Command and Variable Index entries. 161 160 162 161 163 @node Concept Index, , Command and Variable Index, Top 162 164 @unnumbered Concept Index 163 165 164 There are currently no Concept Index entries.165 @ c @printindex cp166 @c There are currently no Concept Index entries. 167 @printindex cp 166 168 167 169 @contents -
doc/user/clock.t
r0de8359 r169502e 8 8 9 9 @chapter Clock Manager 10 11 @cindex clock 10 12 11 13 @section Introduction … … 219 221 and status codes. 220 222 223 @c 224 @c 225 @c 221 226 @page 222 227 @subsection CLOCK_SET - Set system date and time … … 224 229 @subheading CALLING SEQUENCE: 225 230 226 @ifset is-C 227 @c @findex rtems_clock_set 231 @cindex set the time of day 232 233 @ifset is-C 234 @findex rtems_clock_set 228 235 @example 229 236 rtems_status_code rtems_clock_set( … … 270 277 the system date and time to application specific specifications. 271 278 279 @c 280 @c 281 @c 272 282 @page 273 283 @subsection CLOCK_GET - Get system date and time information 274 284 285 @cindex obtain the time of day 286 275 287 @subheading CALLING SEQUENCE: 276 288 277 289 @ifset is-C 278 @ c @findex rtems_clock_get290 @findex rtems_clock_get 279 291 @example 280 292 rtems_status_code rtems_clock_get( … … 361 373 system date and time to application specific specifications. 362 374 375 @c 376 @c 377 @c 363 378 @page 364 379 @subsection CLOCK_TICK - Announce a clock tick 365 380 381 @cindex clock tick 382 366 383 @subheading CALLING SEQUENCE: 367 384 368 385 @ifset is-C 369 @ c @findex rtems_clock_tick386 @findex rtems_clock_tick 370 387 @example 371 388 rtems_status_code rtems_clock_tick( void ); -
doc/user/concepts.t
r0de8359 r169502e 23 23 24 24 @section Objects 25 26 @cindex objects 25 27 26 28 RTEMS provides directives which can be used to … … 41 43 IDs are designed to facilitate efficient object manipulation by 42 44 the executive. 45 46 @cindex object name 43 47 44 48 An object name is an unsigned thirty-two bit entity … … 55 59 approach would be to name them the binary values one through 56 60 one-hundred, respectively. 61 62 @cindex object ID 57 63 58 64 @need 3000 … … 180 186 @section Communication and Synchronization 181 187 188 @cindex communication and synchronization 189 182 190 In real-time multitasking applications, the ability 183 191 for cooperating execution threads to communicate and synchronize … … 221 229 @section Time 222 230 231 @cindex time 232 223 233 The development of responsive real-time applications 224 234 requires an understanding of how RTEMS maintains and supports … … 267 277 268 278 @section Memory Management 279 280 @cindex memory management 269 281 270 282 RTEMS memory management facilities can be grouped -
doc/user/conf.t
r0de8359 r169502e 32 32 @section Automatic Generation of System Configuration 33 33 34 @cindex confdefs.h 35 @fnindex confdefs.h 36 34 37 RTEMS provides the @code{confdefs.h} C language header file that 35 38 based on the setting of a variety of macros can automatically … … 62 65 63 66 @section Configuration Table 67 68 @cindex Configuration Table 69 @cindex RTEMS Configuration Table 64 70 65 71 The RTEMS Configuration Table is used to tailor an … … 269 275 @section RTEMS API Configuration Table 270 276 277 @cindex RTEMS API Configuration Table 278 271 279 The RTEMS API Configuration Table is used to configure the 272 280 managers which constitute the RTEMS API for a particular application. … … 443 451 444 452 @section POSIX API Configuration Table 453 454 @cindex POSIX API Configuration Table 445 455 446 456 The POSIX API Configuration Table is used to configure the … … 602 612 @section CPU Dependent Information Table 603 613 614 @cindex CPU Dependent Information Table 615 604 616 The CPU Dependent Information Table is used to 605 617 describe processor dependent information required by RTEMS. … … 614 626 615 627 @section Initialization Task Table 628 629 @cindex Initialization Tasks Table 616 630 617 631 The Initialization Task Table is used to describe … … 739 753 @section Driver Address Table 740 754 755 @cindex Device Driver Table 756 741 757 The Device Driver Table is used to inform the I/O 742 758 Manager of the set of entry points for each device driver … … 832 848 833 849 @section User Extensions Table 850 851 @cindex User Extensions Table 834 852 835 853 The User Extensions Table is used to inform RTEMS of … … 991 1009 992 1010 @section Multiprocessor Configuration Table 1011 1012 @cindex Multiprocessor Configuration Table 993 1013 994 1014 The Multiprocessor Configuration Table contains … … 1112 1132 1113 1133 @section Multiprocessor Communications Interface Table 1134 1135 @cindex Multiprocessor Communications Interface Table 1114 1136 1115 1137 This table defines the set of callouts that must be provided by -
doc/user/dpmem.t
r0de8359 r169502e 8 8 9 9 @chapter Dual-Ported Memory Manager 10 11 @cindex ports 12 @cindex dual ported memory 10 13 11 14 @section Introduction … … 25 28 26 29 @section Background 30 31 @cindex dual ported memory, definition 32 @cindex external addresses, definition 33 @cindex internal addresses, definition 27 34 28 35 A dual-ported memory area (DPMA) is an contiguous … … 93 100 constants, usage, and status codes. 94 101 102 @c 103 @c 104 @c 95 105 @page 96 106 @subsection PORT_CREATE - Create a port 97 107 98 @subheading CALLING SEQUENCE: 99 100 @ifset is-C 101 @c @findex rtems_port_create 108 @cindex create a port 109 110 @subheading CALLING SEQUENCE: 111 112 @ifset is-C 113 @findex rtems_port_create 102 114 @example 103 115 rtems_status_code rtems_port_create( … … 151 163 preempted. 152 164 165 @c 166 @c 167 @c 153 168 @page 154 169 @subsection PORT_IDENT - Get ID of a port 155 170 156 @subheading CALLING SEQUENCE: 157 158 @ifset is-C 159 @c @findex rtems_port_ident 171 @cindex get ID of a port 172 @cindex obtain ID of a port 173 174 @subheading CALLING SEQUENCE: 175 176 @ifset is-C 177 @findex rtems_port_ident 160 178 @example 161 179 rtems_status_code rtems_port_ident( … … 194 212 preempted. 195 213 214 @c 215 @c 216 @c 196 217 @page 197 218 @subsection PORT_DELETE - Delete a port 198 219 199 @subheading CALLING SEQUENCE: 200 201 @ifset is-C 202 @c @findex rtems_port_delete 220 @cindex delete a port 221 222 @subheading CALLING SEQUENCE: 223 224 @ifset is-C 225 @findex rtems_port_delete 203 226 @example 204 227 rtems_status_code rtems_port_delete( … … 236 259 delete the port. 237 260 261 @c 262 @c 263 @c 238 264 @page 239 265 @subsection PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address 240 266 241 @subheading CALLING SEQUENCE: 242 243 @ifset is-C 244 @c @findex rtems_port_external_to_internal 267 @cindex convert external to internal address 268 269 @subheading CALLING SEQUENCE: 270 271 @ifset is-C 272 @findex rtems_port_external_to_internal 245 273 @example 246 274 rtems_status_code rtems_port_external_to_internal( … … 281 309 preempted. 282 310 311 @c 312 @c 313 @c 283 314 @page 284 315 @subsection PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address 285 316 286 @subheading CALLING SEQUENCE: 287 288 @ifset is-C 289 @c @findex rtems_port_internal_to_external 317 @cindex convert internal to external address 318 319 @subheading CALLING SEQUENCE: 320 321 @ifset is-C 322 @findex rtems_port_internal_to_external 290 323 @example 291 324 rtems_status_code rtems_port_internal_to_external( -
doc/user/event.t
r0de8359 r169502e 9 9 @chapter Event Manager 10 10 11 @cindex events 12 11 13 @section Introduction 12 14 … … 23 25 24 26 @subsection Event Sets 27 28 @cindex event set, definition 25 29 26 30 An event flag is used by a task (or ISR) to inform … … 61 65 @subsection Building an Event Set or Condition 62 66 67 @cindex event condition, building 68 @cindex event set, building 69 63 70 An event set or condition is built by a bitwise OR of 64 71 the desired events. The set of valid events is @code{@value{RPREFIX}EVENT_0} through … … 185 192 and status codes. 186 193 194 @c 195 @c 196 @c 187 197 @page 188 198 @subsection EVENT_SEND - Send event set to a task 189 199 200 @cindex send event set to a task 201 190 202 @subheading CALLING SEQUENCE: 191 203 192 204 @ifset is-C 193 @ c @findex rtems_event_send205 @findex rtems_event_send 194 206 @example 195 207 rtems_status_code rtems_event_send ( … … 242 254 remote node to send the event set to the appropriate task. 243 255 256 @c 257 @c 258 @c 244 259 @page 245 260 @subsection EVENT_RECEIVE - Receive event condition 246 261 262 @cindex receive event condition 263 247 264 @subheading CALLING SEQUENCE: 248 265 249 266 @ifset is-C 250 @ c @findex rtems_event_receive267 @findex rtems_event_receive 251 268 @example 252 269 rtems_status_code rtems_event_receive ( -
doc/user/fatal.t
r0de8359 r169502e 8 8 9 9 @chapter Fatal Error Manager 10 11 @cindex fatal errors 10 12 11 13 @section Introduction … … 20 22 21 23 @section Background 24 25 @cindex fatal error detection 26 @cindex fatal error processing 27 @cindex fatal error user extension 22 28 23 29 The fatal error manager is called upon detection of … … 111 117 constants, usage, and status codes. 112 118 119 @c 120 @c 121 @c 113 122 @page 114 123 @subsection FATAL_ERROR_OCCURRED - Invoke the fatal error handler 124 125 @cindex announce fatal error 126 @cindex fatal error, announce 115 127 116 128 @subheading CALLING SEQUENCE: 117 129 118 130 @ifset is-C 119 @ c @findex rtems_fatal_error_occurred131 @findex rtems_fatal_error_occurred 120 132 @example 121 133 void volatile rtems_fatal_error_occurred( -
doc/user/init.t
r0de8359 r169502e 29 29 30 30 @subsection Initialization Tasks 31 32 @cindex initialization tasks 31 33 32 34 Initialization task(s) are the mechanism by which … … 191 193 @subsection INITIALIZE_EXECUTIVE - Initialize RTEMS 192 194 195 @cindex initialize RTEMS 196 193 197 @subheading CALLING SEQUENCE: 194 198 195 199 @ifset is-C 196 @ c @findex rtems_initialize_executive200 @findex rtems_initialize_executive 197 201 @example 198 202 void rtems_initialize_executive( … … 255 259 @subsection INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking 256 260 261 @cindex initialize RTEMS 262 257 263 @subheading CALLING SEQUENCE: 258 264 259 265 @ifset is-C 260 @ c @findex rtems_initialize_executive_early266 @findex rtems_initialize_executive_early 261 267 @example 262 268 rtems_interrupt_level rtems_initialize_executive_early( … … 308 314 @subsection INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking 309 315 316 @cindex initialize RTEMS 317 @cindex start multitasking 318 310 319 @subheading CALLING SEQUENCE: 311 320 312 321 @ifset is-C 313 @ c @findex rtems_initialize_executive_late322 @findex rtems_initialize_executive_late 314 323 @example 315 324 void rtems_initialize_executive_late( … … 358 367 initialization sequences: 359 368 @code{@value{DIRPREFIX}initialize_executive} or 360 @code{@value{DIRPREFIX} nitialize_executive_early} and369 @code{@value{DIRPREFIX}initialize_executive_early} and 361 370 @code{@value{DIRPREFIX}initialize_executive_late}. 362 371 … … 366 375 @subsection SHUTDOWN_EXECUTIVE - Shutdown RTEMS 367 376 377 @cindex shutdown RTEMS 378 368 379 @subheading CALLING SEQUENCE: 369 380 370 381 @ifset is-C 371 @ c @findex rtems_shutdown_executive382 @findex rtems_shutdown_executive 372 383 @example 373 384 void rtems_shutdown_executive( -
doc/user/intr.t
r0de8359 r169502e 31 31 32 32 @subsection Processing an Interrupt 33 34 @cindex interrupt processing 33 35 34 36 The interrupt manager allows the application to … … 99 101 @end itemize 100 102 101 102 103 Consider a processor which allows a numerically low 103 104 interrupt level to interrupt a numerically greater interrupt … … 113 114 114 115 @subsection RTEMS Interrupt Levels 116 117 @cindex interrupt levels 115 118 116 119 Many processors support multiple interrupt levels or … … 124 127 125 128 @subsection Disabling of Interrupts by RTEMS 129 130 @cindex disabling interrupts 126 131 127 132 During the execution of directive calls, critical … … 226 231 constants, usage, and status codes. 227 232 233 @c 234 @c 235 @c 228 236 @page 229 237 @subsection INTERRUPT_CATCH - Establish an ISR 230 238 239 @cindex establish an ISR 240 @cindex install an ISR 241 231 242 @subheading CALLING SEQUENCE: 232 243 233 244 @ifset is-C 234 @ c @findex rtems_interrupt_catch245 @findex rtems_interrupt_catch 235 246 @example 236 247 rtems_status_code rtems_interrupt_catch( … … 278 289 This directive will not cause the calling task to be preempted. 279 290 291 @c 292 @c 293 @c 280 294 @page 281 295 @subsection INTERRUPT_DISABLE - Disable Interrupts 282 296 297 @cindex disable interrupts 298 283 299 @subheading CALLING SEQUENCE: 284 300 285 301 @ifset is-C 286 @ c @findex rtems_interrupt_disable302 @findex rtems_interrupt_disable 287 303 @example 288 304 void rtems_interrupt_disable( … … 321 337 @end ifset 322 338 339 @c 340 @c 341 @c 323 342 @page 324 343 @subsection INTERRUPT_ENABLE - Enable Interrupts 325 344 345 @cindex enable interrupts 346 326 347 @subheading CALLING SEQUENCE: 327 348 328 349 @ifset is-C 329 @ c @findex rtems_interrupt_enable350 @findex rtems_interrupt_enable 330 351 @example 331 352 void rtems_interrupt_enable( … … 361 382 362 383 384 @c 385 @c 386 @c 363 387 @page 364 388 @subsection INTERRUPT_FLASH - Flash Interrupts 365 389 390 @cindex flash interrupts 391 366 392 @subheading CALLING SEQUENCE: 367 393 368 394 @ifset is-C 369 @ c @findex rtems_interrupt_flash395 @findex rtems_interrupt_flash 370 396 @example 371 397 void rtems_interrupt_flash( … … 400 426 This directive will not cause the calling task to be preempted. 401 427 428 @c 429 @c 430 @c 402 431 @page 403 432 @subsection INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress 404 433 434 @cindex is interrupt in progress 435 405 436 @subheading CALLING SEQUENCE: 406 437 407 438 @ifset is-C 408 @ c @findex rtems_interrupt_is_in_progress439 @findex rtems_interrupt_is_in_progress 409 440 @example 410 441 rtems_boolean rtems_interrupt_is_in_progress( void ); -
doc/user/io.t
r0de8359 r169502e 8 8 9 9 @chapter I/O Manager 10 11 @cindex device drivers 12 @cindex IO Manager 10 13 11 14 @section Introduction … … 31 34 @subsection Device Driver Table 32 35 36 @cindex Device Driver Table 37 33 38 Each application utilizing the RTEMS I/O manager must 34 39 specify the address of a Device Driver Table in its … … 55 60 @subsection Major and Minor Device Numbers 56 61 62 @cindex major device number 63 @cindex minor device number 64 57 65 Each call to the I/O manager must provide a device's 58 66 major and minor numbers as arguments. The major number is the … … 65 73 @subsection Device Names 66 74 75 @cindex device names 76 67 77 The I/O Manager provides facilities to associate a 68 78 name with a particular device. Directives are provided to … … 101 111 102 112 @subsection Device Driver Interface 113 114 @cindex device driver interface 103 115 104 116 When an application invokes an I/O manager directive, … … 199 211 status codes. 200 212 213 @c 214 @c 215 @c 201 216 @page 202 217 @subsection IO_INITIALIZE - Initialize a device driver 203 218 204 @subheading CALLING SEQUENCE: 205 206 @ifset is-C 207 @c @findex rtems_io_initialize 219 @cindex initialize a device driver 220 221 @subheading CALLING SEQUENCE: 222 223 @ifset is-C 224 @findex rtems_io_initialize 208 225 @example 209 226 rtems_status_code rtems_io_initialize( … … 250 267 initialized. 251 268 269 @c 270 @c 271 @c 252 272 @page 253 273 @subsection IO_REGISTER_NAME - Register a device 254 274 255 @subheading CALLING SEQUENCE: 256 257 @ifset is-C 258 @c @findex rtems_io_register_name 275 @cindex register device 276 277 @subheading CALLING SEQUENCE: 278 279 @ifset is-C 280 @findex rtems_io_register_name 259 281 @example 260 282 rtems_status_code rtems_io_register_name( … … 291 313 preempted. 292 314 315 @c 316 @c 317 @c 293 318 @page 294 319 @subsection IO_LOOKUP_NAME - Lookup a device 295 320 296 @subheading CALLING SEQUENCE: 297 298 @ifset is-C 299 @c @findex rtems_io_lookup_name 321 @cindex lookup device major and minor number 322 323 @subheading CALLING SEQUENCE: 324 325 @ifset is-C 326 @findex rtems_io_lookup_name 300 327 @example 301 328 rtems_status_code rtems_io_lookup_name( … … 330 357 preempted. 331 358 359 @c 360 @c 361 @c 332 362 @page 333 363 @subsection IO_OPEN - Open a device 334 364 335 @subheading CALLING SEQUENCE: 336 337 @ifset is-C 338 @c @findex rtems_io_open 365 @cindex open a devive 366 367 @subheading CALLING SEQUENCE: 368 369 @ifset is-C 370 @findex rtems_io_open 339 371 @example 340 372 rtems_status_code rtems_io_open( … … 375 407 invoked. 376 408 409 @c 410 @c 411 @c 377 412 @page 378 413 @subsection IO_CLOSE - Close a device 379 414 380 @subheading CALLING SEQUENCE: 381 382 @ifset is-C 383 @c @findex rtems_io_close 415 @cindex close a device 416 417 @subheading CALLING SEQUENCE: 418 419 @ifset is-C 420 @findex rtems_io_close 384 421 @example 385 422 rtems_status_code rtems_io_close( … … 420 457 invoked. 421 458 459 @c 460 @c 461 @c 422 462 @page 423 463 @subsection IO_READ - Read from a device 424 464 425 @subheading CALLING SEQUENCE: 426 427 @ifset is-C 428 @c @findex rtems_io_read 465 @cindex read from a device 466 467 @subheading CALLING SEQUENCE: 468 469 @ifset is-C 470 @findex rtems_io_read 429 471 @example 430 472 rtems_status_code rtems_io_read( … … 466 508 invoked. 467 509 510 @c 511 @c 512 @c 468 513 @page 469 514 @subsection IO_WRITE - Write to a device 470 515 471 @subheading CALLING SEQUENCE: 472 473 @ifset is-C 474 @c @findex rtems_io_write 516 @cindex write to a device 517 518 @subheading CALLING SEQUENCE: 519 520 @ifset is-C 521 @findex rtems_io_write 475 522 @example 476 523 rtems_status_code rtems_io_write( … … 512 559 invoked. 513 560 561 @c 562 @c 563 @c 514 564 @page 515 565 @subsection IO_CONTROL - Special device services 516 566 517 @subheading CALLING SEQUENCE: 518 519 @ifset is-C 520 @c @findex rtems_io_control 567 @cindex special device services 568 @cindex IO Control 569 570 @subheading CALLING SEQUENCE: 571 572 @ifset is-C 573 @findex rtems_io_control 521 574 @example 522 575 rtems_status_code rtems_io_control( -
doc/user/mp.t
r0de8359 r169502e 8 8 9 9 @chapter Multiprocessing Manager 10 11 @cindex multiprocessing 10 12 11 13 @section Introduction … … 44 46 @section Background 45 47 48 @cindex multiprocessing topologies 49 46 50 RTEMS makes no assumptions regarding the connection 47 51 media or topology of a multiprocessor system. The tasks which … … 71 75 @subsection Nodes 72 76 77 @cindex nodes, definition 78 73 79 A processor in a RTEMS system is referred to as a 74 80 node. Each node is assigned a unique non-zero node number by 75 81 the application designer. RTEMS assumes that node numbers are 76 assigned consecutively from one to maximum_nodes. The node 82 assigned consecutively from one to the @code{maximum_nodes} 83 configuration parameter. The node 77 84 number, node, and the maximum number of nodes, maximum_nodes, in 78 85 a system are found in the Multiprocessor Configuration Table. … … 87 94 88 95 @subsection Global Objects 96 97 @cindex global objects, definition 89 98 90 99 All RTEMS objects which are created with the GLOBAL … … 102 111 @subsection Global Object Table 103 112 113 @cindex global objects table 114 104 115 RTEMS maintains two tables containing object 105 116 information on every node in a multiprocessor system: a local … … 124 135 @subsection Remote Operations 125 136 137 @cindex MPCI and remote operations 138 126 139 When an application performs an operation on a remote 127 140 global object, RTEMS must generate a Remote Request (RQ) message … … 191 204 192 205 @subsection Proxies 206 207 @cindex proxy, definition 193 208 194 209 A proxy is an RTEMS data structure which resides on a … … 230 245 returning to RTEMS. 231 246 247 @cindex MPCI, definition 248 232 249 The MPCI layer is responsible for managing a pool of 233 250 buffers called packets and for sending these packets between … … 238 255 on the MPCI layer implementation. 239 256 257 @cindex MPCI entry points 258 240 259 The entry points to the routines in the user's MPCI 241 260 layer should be placed in the Multiprocessor Communications … … 251 270 @end itemize 252 271 253 A packet is sent by RTEMS in each of the following 254 situations: 272 A packet is sent by RTEMS in each of the following situations: 255 273 256 274 @itemize @bullet … … 458 476 @subsection Supporting Heterogeneous Environments 459 477 478 @cindex heterogeneous multiprocessing 479 460 480 Developing an MPCI layer for a heterogeneous system 461 481 requires a thorough understanding of the differences between the … … 555 575 status codes. 556 576 577 @c 578 @c 579 @c 557 580 @page 558 581 @subsection MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet 559 582 583 @cindex announce arrival of package 584 560 585 @subheading CALLING SEQUENCE: 561 586 562 587 @ifset is-C 563 @ c @findex rtems_multiprocessing_announce588 @findex rtems_multiprocessing_announce 564 589 @example 565 590 void rtems_multiprocessing_announce( void ); -
doc/user/msg.t
r0de8359 r169502e 8 8 9 9 @chapter Message Manager 10 11 @cindex messages 12 @cindex message queues 10 13 11 14 @section Introduction … … 55 58 @subsection Building a Message Queue Attribute Set 56 59 60 @cindex message queue attributes 61 57 62 In general, an attribute set is built by a bitwise OR 58 63 of the desired attribute components. The set of valid message … … 212 217 constants, usage, and status codes. 213 218 219 @c 220 @c 221 @c 214 222 @page 215 223 @subsection MESSAGE_QUEUE_CREATE - Create a queue 216 224 225 @cindex create a message queue 226 217 227 @subheading CALLING SEQUENCE: 218 228 219 229 @ifset is-C 220 @ c @findex rtems_message_queue_create230 @findex rtems_message_queue_create 221 231 @example 222 232 rtems_status_code rtems_message_queue_create( … … 298 308 configuration table. 299 309 310 @c 311 @c 312 @c 300 313 @page 301 314 @subsection MESSAGE_QUEUE_IDENT - Get ID of a queue 302 315 316 @cindex get ID of a message queue 317 303 318 @subheading CALLING SEQUENCE: 304 319 305 320 @ifset is-C 306 @ c @findex rtems_message_queue_ident321 @findex rtems_message_queue_ident 307 322 @example 308 323 rtems_status_code rtems_message_queue_ident( … … 356 371 table. 357 372 373 @c 374 @c 375 @c 358 376 @page 359 377 @subsection MESSAGE_QUEUE_DELETE - Delete a queue 360 378 379 @cindex delete a message queue 380 361 381 @subheading CALLING SEQUENCE: 362 382 363 383 @ifset is-C 364 @ c @findex rtems_message_queue_delete384 @findex rtems_message_queue_delete 365 385 @example 366 386 rtems_status_code rtems_message_queue_delete( … … 418 438 reclaimed when the message queue is deleted. 419 439 440 @c 441 @c 442 @c 420 443 @page 421 444 @subsection MESSAGE_QUEUE_SEND - Put message at rear of a queue 422 445 446 @cindex send message to a queue 447 423 448 @subheading CALLING SEQUENCE: 424 449 425 450 @ifset is-C 426 @ c @findex rtems_message_queue_send451 @findex rtems_message_queue_send 427 452 @example 428 453 rtems_status_code rtems_message_queue_send( … … 477 502 proxy used to represent the task is reclaimed. 478 503 504 @c 505 @c 506 @c 479 507 @page 480 508 @subsection MESSAGE_QUEUE_URGENT - Put message at front of a queue 481 509 510 @cindex put message at front of queue 511 482 512 @subheading CALLING SEQUENCE: 483 513 484 514 @ifset is-C 485 @ c @findex rtems_message_queue_urgent515 @findex rtems_message_queue_urgent 486 516 @example 487 517 rtems_status_code rtems_message_queue_urgent( … … 537 567 proxy used to represent the task is reclaimed. 538 568 569 @c 570 @c 571 @c 539 572 @page 540 573 @subsection MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue 541 574 575 @cindex broadcast message to a queue 576 542 577 @subheading CALLING SEQUENCE: 543 578 544 579 @ifset is-C 545 @ c @findex rtems_message_queue_broadcast580 @findex rtems_message_queue_broadcast 546 581 @example 547 582 rtems_status_code rtems_message_queue_broadcast( … … 601 636 proxy used to represent the task is reclaimed. 602 637 638 @c 639 @c 640 @c 603 641 @page 604 642 @subsection MESSAGE_QUEUE_RECEIVE - Receive message from a queue 605 643 644 @cindex receive message from a queue 645 606 646 @subheading CALLING SEQUENCE: 607 647 608 648 @ifset is-C 609 @ c @findex rtems_message_queue_receive649 @findex rtems_message_queue_receive 610 650 @example 611 651 rtems_status_code rtems_message_queue_receive( … … 688 728 this directive. 689 729 730 @c 731 @c 732 @c 690 733 @page 691 734 @subsection MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue 692 735 736 @cindex get number of pending messages 737 693 738 @subheading CALLING SEQUENCE: 694 739 695 740 @ifset is-C 696 @ c @findex rtems_message_queue_get_number_pending741 @findex rtems_message_queue_get_number_pending 697 742 @example 698 743 rtems_status_code rtems_message_queue_get_number_pending( … … 731 776 732 777 778 @c 779 @c 780 @c 733 781 @page 734 782 @subsection MESSAGE_QUEUE_FLUSH - Flush all messages on a queue 735 783 784 @cindex flush messages on a queue 785 736 786 @subheading CALLING SEQUENCE: 737 787 738 788 @ifset is-C 739 @ c @findex rtems_message_queue_flush789 @findex rtems_message_queue_flush 740 790 @example 741 791 rtems_status_code rtems_message_queue_flush( -
doc/user/part.t
r0de8359 r169502e 8 8 9 9 @chapter Partition Manager 10 11 @cindex partitions 10 12 11 13 @section Introduction … … 27 29 @subsection Partition Manager Definitions 28 30 31 @cindex partition, definition 32 29 33 A partition is a physically contiguous memory area 30 34 divided into fixed-size buffers that can be dynamically 31 35 allocated and deallocated. 36 37 @cindex buffers, definition 32 38 33 39 Partitions are managed and maintained as a list of … … 43 49 @subsection Building a Partition Attribute Set 44 50 51 @cindex partition attribute set, building 52 45 53 In general, an attribute set is built by a bitwise OR 46 54 of the desired attribute components. The set of valid partition … … 51 59 @item @code{@value{RPREFIX}GLOBAL} - global task 52 60 @end itemize 53 54 61 55 62 Attribute values are specifically designed to be … … 124 131 constants, usage, and status codes. 125 132 133 @c 134 @c 135 @c 126 136 @page 127 137 @subsection PARTITION_CREATE - Create a partition 128 138 139 @cindex create a partition 140 129 141 @subheading CALLING SEQUENCE: 130 142 131 143 @ifset is-C 132 @ c @findex rtems_partition_create144 @findex rtems_partition_create 133 145 @example 134 146 rtems_status_code rtems_partition_create( … … 211 223 the Configuration Table. 212 224 225 @c 226 @c 227 @c 213 228 @page 214 229 @subsection PARTITION_IDENT - Get ID of a partition 215 230 231 @cindex get ID of a partition 232 @cindex obtain ID of a partition 233 216 234 @subheading CALLING SEQUENCE: 217 235 218 236 @ifset is-C 219 @ c @findex rtems_partition_ident237 @findex rtems_partition_ident 220 238 @example 221 239 rtems_status_code rtems_partition_ident( … … 269 287 table. 270 288 289 @c 290 @c 291 @c 271 292 @page 272 293 @subsection PARTITION_DELETE - Delete a partition 273 294 295 @cindex delete a partition 296 274 297 @subheading CALLING SEQUENCE: 275 298 276 299 @ifset is-C 277 @ c @findex rtems_partition_delete300 @findex rtems_partition_delete 278 301 @example 279 302 rtems_status_code rtems_partition_delete( … … 321 344 the partition was created with the @code{@value{RPREFIX}GLOBAL} option. 322 345 346 @c 347 @c 348 @c 323 349 @page 324 350 @subsection PARTITION_GET_BUFFER - Get buffer from a partition 325 351 352 @cindex get buffer from partition 353 @cindex obtain buffer from partition 354 326 355 @subheading CALLING SEQUENCE: 327 356 328 357 @ifset is-C 329 @ c @findex rtems_partition_get_buffer358 @findex rtems_partition_get_buffer 330 359 @example 331 360 rtems_status_code rtems_partition_get_buffer( … … 370 399 remote node to allocate a buffer from the specified partition. 371 400 401 @c 402 @c 403 @c 372 404 @page 373 405 @subsection PARTITION_RETURN_BUFFER - Return buffer to a partition 374 406 407 @cindex return buffer to partitition 408 375 409 @subheading CALLING SEQUENCE: 376 410 377 411 @ifset is-C 378 @ c @findex rtems_partition_return_buffer412 @findex rtems_partition_return_buffer 379 413 @example 380 414 rtems_status_code rtems_partition_return_buffer( -
doc/user/region.t
r0de8359 r169502e 8 8 9 9 @chapter Region Manager 10 11 @cindex regions 10 12 11 13 @section Introduction … … 28 30 29 31 @subsection Region Manager Definitions 32 33 @cindex region, definition 34 @cindex segment, definition 30 35 31 36 A region makes up a physically contiguous memory … … 56 61 @subsection Building an Attribute Set 57 62 63 @cindex region attribute set, building 64 58 65 In general, an attribute set is built by a bitwise OR 59 66 of the desired attribute components. The set of valid region … … 215 222 and status codes. 216 223 224 @c 225 @c 226 @c 217 227 @page 218 228 @subsection REGION_CREATE - Create a region 219 229 230 @cindex create a region 231 220 232 @subheading CALLING SEQUENCE: 221 233 222 234 @ifset is-C 223 @ c @findex rtems_region_create235 @findex rtems_region_create 224 236 @example 225 237 rtems_status_code rtems_region_create( … … 294 306 @end itemize 295 307 308 @c 309 @c 310 @c 296 311 @page 297 312 @subsection REGION_IDENT - Get ID of a region 298 313 314 @cindex get ID of a region 315 @cindex obtain ID of a region 316 299 317 @subheading CALLING SEQUENCE: 300 318 301 319 @ifset is-C 302 @ c @findex rtems_region_ident320 @findex rtems_region_ident 303 321 @example 304 322 rtems_status_code rtems_region_ident( … … 337 355 This directive will not cause the running task to be preempted. 338 356 357 @c 358 @c 359 @c 339 360 @page 340 361 @subsection REGION_DELETE - Delete a region 341 362 363 @cindex delete a region 364 342 365 @subheading CALLING SEQUENCE: 343 366 344 367 @ifset is-C 345 @ c @findex rtems_region_delete368 @findex rtems_region_delete 346 369 @example 347 370 rtems_status_code rtems_region_delete( … … 381 404 delete the region. 382 405 406 @c 407 @c 408 @c 383 409 @page 384 410 @subsection REGION_EXTEND - Add memory to a region 385 411 412 @cindex add memory to a region 413 @cindex region, add memory 414 386 415 @subheading CALLING SEQUENCE: 387 416 388 417 @ifset is-C 389 @ c @findex rtems_region_extend418 @findex rtems_region_extend 390 419 @example 391 420 rtems_status_code rtems_region_extend( … … 427 456 extend the region. 428 457 458 @c 459 @c 460 @c 429 461 @page 430 462 @subsection REGION_GET_SEGMENT - Get segment from a region 431 463 464 @cindex get segment from region 465 432 466 @subheading CALLING SEQUENCE: 433 467 434 468 @ifset is-C 435 @ c @findex rtems_region_get_segment469 @findex rtems_region_get_segment 436 470 @example 437 471 rtems_status_code rtems_region_get_segment( … … 515 549 this directive. 516 550 551 @c 552 @c 553 @c 517 554 @page 518 555 @subsection REGION_RETURN_SEGMENT - Return segment to a region 519 556 557 @cindex return segment to region 558 520 559 @subheading CALLING SEQUENCE: 521 560 522 561 @ifset is-C 523 @ c @findex rtems_region_return_segment562 @findex rtems_region_return_segment 524 563 @example 525 564 rtems_status_code rtems_region_return_segment( … … 569 608 @end itemize 570 609 610 @c 611 @c 612 @c 571 613 @page 572 614 @subsection REGION_GET_SEGMENT_SIZE - Obtain size of a segment 573 615 616 @cindex get size of segment 617 574 618 @subheading CALLING SEQUENCE: 575 619 576 620 @ifset is-C 577 @ c @findex rtems_region_get_segment_size621 @findex rtems_region_get_segment_size 578 622 @example 579 623 rtems_status_code rtems_region_get_segment_size( -
doc/user/rtmon.t
r0de8359 r169502e 14 14 15 15 @chapter Rate Monotonic Manager 16 17 @cindex rate mononitonic tasks 18 @cindex periodic tasks 16 19 17 20 @section Introduction … … 46 49 47 50 @subsection Rate Monotonic Manager Definitions 51 52 @cindex periodic task, definition 48 53 49 54 A periodic task is one which must be executed at a … … 62 67 analyzing system behavior under transient overload conditions. 63 68 69 @cindex aperiodic task, definition 70 64 71 In contrast, an aperiodic task executes at irregular 65 72 intervals and has only a soft deadline. In other words, the … … 67 74 response times are desirable. For example, an aperiodic task 68 75 may process user input from a terminal. 76 77 @cindex sporadic task, definition 69 78 70 79 Finally, a sporadic task is an aperiodic task with a … … 78 87 79 88 @subsection Rate Monotonic Scheduling Algorithm 89 90 @cindex Rate Monotonic Scheduling Algorithm, definition 91 @cindex RMS Algorithm, definition 80 92 81 93 The Rate Monotonic Scheduling Algorithm (RMS) is … … 197 209 @subsection Schedulability Analysis 198 210 211 @cindex RMS schedulability analysis 212 199 213 RMS allows application designers to insure that tasks 200 214 can meet all deadlines, even under transient overload, without … … 233 247 234 248 @subsection Processor Utilization Rule 249 250 @cindex RMS Processor Utilization Rule 235 251 236 252 The Processor Utilization Rule requires that … … 348 364 @subsection First Deadline Rule 349 365 366 @cindex RMS First Deadline Rule 367 350 368 If a given set of tasks do exceed the processor 351 369 utilization upper limit imposed by the Processor Utilization … … 829 847 constants, usage, and status codes. 830 848 849 @c 850 @c 851 @c 831 852 @page 832 853 @subsection RATE_MONOTONIC_CREATE - Create a rate monotonic period 833 854 855 @cindex create a period 856 834 857 @subheading CALLING SEQUENCE: 835 858 836 859 @ifset is-C 837 @ c @findex rtems_rate_monotonic_create860 @findex rtems_rate_monotonic_create 838 861 @example 839 862 rtems_status_code rtems_rate_monotonic_create( … … 873 896 preempted. 874 897 898 @c 899 @c 900 @c 875 901 @page 876 902 @subsection RATE_MONOTONIC_IDENT - Get ID of a period 877 903 904 @cindex get ID of a period 905 @cindex obtain ID of a period 906 878 907 @subheading CALLING SEQUENCE: 879 908 880 909 @ifset is-C 881 @ c @findex rtems_rate_monotonic_ident910 @findex rtems_rate_monotonic_ident 882 911 @example 883 912 rtems_status_code rtems_rate_monotonic_ident( … … 916 945 preempted. 917 946 947 @c 948 @c 949 @c 918 950 @page 919 951 @subsection RATE_MONOTONIC_CANCEL - Cancel a period 920 952 953 @cindex cancel a period 954 921 955 @subheading CALLING SEQUENCE: 922 956 923 957 @ifset is-C 924 @ c @findex rtems_rate_monotonic_cancel958 @findex rtems_rate_monotonic_cancel 925 959 @example 926 960 rtems_status_code rtems_rate_monotonic_cancel( … … 958 992 been created by the calling task. 959 993 994 @c 995 @c 996 @c 960 997 @page 961 998 @subsection RATE_MONOTONIC_DELETE - Delete a rate monotonic period 962 999 1000 @cindex delete a period 1001 963 1002 @subheading CALLING SEQUENCE: 964 1003 965 1004 @ifset is-C 966 @ c @findex rtems_rate_monotonic_delete1005 @findex rtems_rate_monotonic_delete 967 1006 @example 968 1007 rtems_status_code rtems_rate_monotonic_delete( … … 999 1038 other than the task which created the period. 1000 1039 1040 @c 1041 @c 1042 @c 1001 1043 @page 1002 1044 @subsection RATE_MONOTONIC_PERIOD - Conclude current/Start next period 1003 1045 1046 @cindex conclude current period 1047 @cindex start current period 1048 @cindex period initiation 1049 1004 1050 @subheading CALLING SEQUENCE: 1005 1051 1006 1052 @ifset is-C 1007 @ c @findex rtems_rate_monotonic_period1053 @findex rtems_rate_monotonic_period 1008 1054 @example 1009 1055 rtems_status_code rtems_rate_monotonic_period( … … 1050 1096 This directive will not cause the running task to be preempted. 1051 1097 1052 --------------------- 1098 @c 1099 @c 1100 @c 1053 1101 @page 1054 1102 @subsection RATE_MONOTONIC_GET_STATUS - Obtain status information on period 1055 1103 1104 @cindex get status of period 1105 @cindex obtain status of period 1106 1056 1107 @subheading CALLING SEQUENCE: 1057 1108 1058 1109 @ifset is-C 1059 @ c @findex rtems_rate_monotonic_get_status1110 @findex rtems_rate_monotonic_get_status 1060 1111 @example 1061 1112 rtems_status_code rtems_rate_monotonic_get_status( -
doc/user/schedule.t
r0de8359 r169502e 13 13 14 14 @chapter Scheduling Concepts 15 16 @cindex scheduling 17 @cindex task scheduling 15 18 16 19 @section Introduction … … 50 53 @section Scheduling Mechanisms 51 54 55 @cindex scheduling mechanisms 56 52 57 RTEMS provides four mechanisms which allow the user 53 58 to impact the task scheduling process: … … 75 80 @subsection Task Priority and Scheduling 76 81 82 @cindex task priority 83 77 84 The most significant of these mechanisms is the 78 85 ability for the user to assign a priority level to each … … 96 103 @subsection Preemption 97 104 105 @cindex preemption 106 98 107 Another way the user can alter the basic scheduling 99 108 algorithm is by manipulating the preemption mode flag … … 108 117 109 118 @subsection Timeslicing 119 120 @cindex timeslicing 121 @cindex round robin scheduling 110 122 111 123 Timeslicing or round-robin scheduling is an … … 128 140 @subsection Manual Round-Robin 129 141 142 @cindex manual round robin 143 130 144 The final mechanism for altering the RTEMS scheduling 131 145 algorithm is called manual round-robin. Manual round-robin is … … 139 153 140 154 @subsection Dispatching Tasks 155 156 @cindex dispatching 141 157 142 158 The dispatcher is the RTEMS component responsible for … … 167 183 168 184 @section Task State Transitions 185 186 @cindex task state transitions 169 187 170 188 Tasks in an RTEMS system must always be in one of the -
doc/user/sem.t
r0de8359 r169502e 8 8 9 9 @chapter Semaphore Manager 10 11 @cindex semaphores 12 @cindex binary semaphores 13 @cindex counting semaphores 14 @cindex mutual exclusion 10 15 11 16 @section Introduction … … 210 215 specified on this call. 211 216 212 This example demonstrates the attribute_set parameter 213 needed to create a local semaphore with the task priority 214 waiting queue discipline. The attribute_set parameter passed to 215 the @code{@value{DIRPREFIX}semaphore_create} directive could be either 216 @code{@value{RPREFIX}PRIORITY} or 217 @code{@value{RPREFIX}LOCAL @value{OR} @value{RPREFIX}PRIORITY}. 218 The attribute_set parameter can be set to @code{@value{RPREFIX}PRIORITY} 219 because @code{@value{RPREFIX}LOCAL} is the default for all created tasks. If a 220 similar semaphore were to be known globally, then the 221 attribute_set parameter would be 217 This example demonstrates the attribute_set parameter needed to create a 218 local semaphore with the task priority waiting queue discipline. The 219 attribute_set parameter passed to the 220 @code{@value{DIRPREFIX}semaphore_create} directive could be either 221 @code{@value{RPREFIX}PRIORITY} or @code{@value{RPREFIX}LOCAL @value{OR} 222 @value{RPREFIX}PRIORITY}. The attribute_set parameter can be set to 223 @code{@value{RPREFIX}PRIORITY} because @code{@value{RPREFIX}LOCAL} is the 224 default for all created tasks. If a similar semaphore were to be known 225 globally, then the attribute_set parameter would be 222 226 @code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}. 223 227 … … 234 238 @end itemize 235 239 236 Option values are specifically designed to be 237 mutually exclusive, therefore bitwise OR and addition operations 238 are equivalent as long as each attribute appears exactly once in 239 the component list. An option listed as a default is not 240 required to appear in the list, although it is a good 241 programming practice to specify default options. If all 242 defaults are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be 240 Option values are specifically designed to be mutually exclusive, 241 therefore bitwise OR and addition operations are equivalent as long as 242 each attribute appears exactly once in the component list. An option 243 listed as a default is not required to appear in the list, although it is 244 a good programming practice to specify default options. If all defaults 245 are desired, the option @code{@value{RPREFIX}DEFAULT_OPTIONS} should be 243 246 specified on this call. 244 247 … … 303 306 acquire the semaphore. 304 307 305 @item Specifying @code{@value{RPREFIX}NO_WAIT} forces an immediate return with an306 error status code.308 @item Specifying @code{@value{RPREFIX}NO_WAIT} forces an immediate return 309 with an error status code. 307 310 308 311 @item Specifying a timeout limits the interval the task will … … 328 331 The @code{@value{DIRPREFIX}semaphore_release} directive is used to release 329 332 the specified semaphore. A simplified version of the 330 @code{@value{DIRPREFIX}semaphore_release} directive can be described as follows: 333 @code{@value{DIRPREFIX}semaphore_release} directive can be described as 334 follows: 331 335 332 336 @example … … 361 365 constants, usage, and status codes. 362 366 367 @c 368 @c 369 @c 363 370 @page 364 371 @subsection SEMAPHORE_CREATE - Create a semaphore 365 372 373 @cindex create a semaphore 374 366 375 @subheading CALLING SEQUENCE: 367 376 368 377 @ifset is-C 369 @ c @findex rtems_semaphore_create378 @findex rtems_semaphore_create 370 379 @example 371 380 rtems_status_code rtems_semaphore_create( … … 463 472 the Configuration Table. 464 473 474 @c 475 @c 476 @c 465 477 @page 466 478 @subsection SEMAPHORE_IDENT - Get ID of a semaphore 467 479 480 @cindex get ID of a semaphore 481 @cindex obtain ID of a semaphore 482 468 483 @subheading CALLING SEQUENCE: 469 484 470 485 @ifset is-C 471 @ c @findex rtems_semaphore_ident486 @findex rtems_semaphore_ident 472 487 @example 473 488 rtems_status_code rtems_semaphore_ident( … … 521 536 table. 522 537 538 @c 539 @c 540 @c 523 541 @page 524 542 @subsection SEMAPHORE_DELETE - Delete a semaphore 525 543 544 @cindex delete a semaphore 545 526 546 @subheading CALLING SEQUENCE: 527 547 528 548 @ifset is-C 529 @ c @findex rtems_semaphore_delete549 @findex rtems_semaphore_delete 530 550 @example 531 551 rtems_status_code rtems_semaphore_delete( … … 580 600 reclaimed when the semaphore is deleted. 581 601 602 @c 603 @c 604 @c 582 605 @page 583 606 @subsection SEMAPHORE_OBTAIN - Acquire a semaphore 584 607 608 @cindex obtain a semaphore 609 @cindex lock a semaphore 610 585 611 @subheading CALLING SEQUENCE: 586 612 587 613 @ifset is-C 588 @ c @findex rtems_semaphore_obtain614 @findex rtems_semaphore_obtain 589 615 @example 590 616 rtems_status_code rtems_semaphore_obtain( … … 625 651 returning immediately with a successful return code. 626 652 627 If the calling task chooses to return immediately and 628 the current semaphore count is zero or negative, then a status 629 code is returned indicating that the semaphore is not available. 630 If the calling task chooses to wait for a semaphore and the 631 current semaphore count is zero or negative, then it is 632 decremented by one and the calling task is placed on the 633 semaphore's wait queue and blocked. If the semaphore was 634 created with the @code{@value{RPREFIX}PRIORITY} attribute, then the calling task is 635 inserted into the queue according to its priority. However, if 636 the semaphore was created with the @code{@value{RPREFIX}FIFO} attribute, then the 637 calling task is placed at the rear of the wait queue. If the 638 binary semaphore was created with the @code{@value{RPREFIX}INHERIT_PRIORITY} 639 attribute, then the priority of the task currently holding the 640 binary semaphore is guaranteed to be greater than or equal to 641 that of the blocking task. If the binary semaphore was created 642 with the @code{@value{RPREFIX}PRIORITY_CEILING} attribute, a task successfully obtains 643 the semaphore, and the priority of that task is greater than the 644 ceiling priority for this semaphore, then the priority of the 645 task obtaining the semaphore is elevated to that of the ceiling. 646 647 The timeout parameter specifies the maximum interval 648 the calling task is willing to be blocked waiting for the 649 semaphore. If it is set to @code{@value{RPREFIX}NO_TIMEOUT}, then the calling task 650 will wait forever. If the semaphore is available or the @code{@value{RPREFIX}NO_WAIT} 651 option component is set, then timeout is ignored. 653 If the calling task chooses to return immediately and the current 654 semaphore count is zero or negative, then a status code is returned 655 indicating that the semaphore is not available. If the calling task 656 chooses to wait for a semaphore and the current semaphore count is zero or 657 negative, then it is decremented by one and the calling task is placed on 658 the semaphore's wait queue and blocked. If the semaphore was created with 659 the @code{@value{RPREFIX}PRIORITY} attribute, then the calling task is 660 inserted into the queue according to its priority. However, if the 661 semaphore was created with the @code{@value{RPREFIX}FIFO} attribute, then 662 the calling task is placed at the rear of the wait queue. If the binary 663 semaphore was created with the @code{@value{RPREFIX}INHERIT_PRIORITY} 664 attribute, then the priority of the task currently holding the binary 665 semaphore is guaranteed to be greater than or equal to that of the 666 blocking task. If the binary semaphore was created with the 667 @code{@value{RPREFIX}PRIORITY_CEILING} attribute, a task successfully 668 obtains the semaphore, and the priority of that task is greater than the 669 ceiling priority for this semaphore, then the priority of the task 670 obtaining the semaphore is elevated to that of the ceiling. 671 672 The timeout parameter specifies the maximum interval the calling task is 673 willing to be blocked waiting for the semaphore. If it is set to 674 @code{@value{RPREFIX}NO_TIMEOUT}, then the calling task will wait forever. 675 If the semaphore is available or the @code{@value{RPREFIX}NO_WAIT} option 676 component is set, then timeout is ignored. 652 677 653 678 @subheading NOTES: … … 660 685 @end itemize 661 686 662 Attempting to obtain a global semaphore which does not reside on 663 the local node will generate a request to the remote node to 664 access the semaphore. If the semaphore is not available and 665 @code{@value{RPREFIX}NO_WAIT} was not specified, then the task must be blocked until 666 the semaphore is released. A proxy is allocated on the remote 667 node to represent the taskuntil the semaphore is released.687 Attempting to obtain a global semaphore which does not reside on the local 688 node will generate a request to the remote node to access the semaphore. 689 If the semaphore is not available and @code{@value{RPREFIX}NO_WAIT} was 690 not specified, then the task must be blocked until the semaphore is 691 released. A proxy is allocated on the remote node to represent the task 692 until the semaphore is released. 668 693 669 694 A clock tick is required to support the timeout functionality of 670 695 this directive. 671 696 697 @c 698 @c 699 @c 672 700 @page 673 701 @subsection SEMAPHORE_RELEASE - Release a semaphore 674 702 703 @cindex release a semaphore 704 @cindex unlock a semaphore 705 675 706 @subheading CALLING SEQUENCE: 676 707 677 708 @ifset is-C 678 @ c @findex rtems_semaphore_release709 @findex rtems_semaphore_release 679 710 @example 680 711 rtems_status_code rtems_semaphore_release( -
doc/user/signal.t
r0de8359 r169502e 8 8 9 9 @chapter Signal Manager 10 11 @cindex signals 10 12 11 13 @section Introduction … … 23 25 24 26 @subsection Signal Manager Definitions 27 28 @cindex asynchronous signal routine 29 @cindex ASR 25 30 26 31 The signal manager allows a task to optionally define … … 44 49 @subsection A Comparison of ASRs and ISRs 45 50 51 @cindex ASR vs. ISR 52 @cindex ISR vs. ASR 53 46 54 The format of an ASR is similar to that of an ISR 47 55 with the following exceptions: … … 65 73 66 74 @subsection Building a Signal Set 75 76 @cindex signal set, building 67 77 68 78 A signal set is built by a bitwise OR of the desired … … 84 94 85 95 @subsection Building an ASR Mode 96 97 @cindex ASR mode, building 86 98 87 99 In general, an ASR's mode is built by a bitwise OR of … … 231 243 and status codes. 232 244 245 @c 246 @c 247 @c 233 248 @page 234 249 @subsection SIGNAL_CATCH - Establish an ASR 235 250 251 @cindex establish an ASR 252 @cindex install an ASR 253 236 254 @subheading CALLING SEQUENCE: 237 255 238 256 @ifset is-C 239 @ c @findex rtems_signal_catch257 @findex rtems_signal_catch 240 258 @example 241 259 rtems_status_code rtems_signal_catch( … … 303 321 @end itemize 304 322 323 @c 324 @c 325 @c 305 326 @page 306 327 @subsection SIGNAL_SEND - Send signal set to a task 307 328 329 @cindex send signal set 330 308 331 @subheading CALLING SEQUENCE: 309 332 310 333 @ifset is-C 311 @ c @findex rtems_signal_send334 @findex rtems_signal_send 312 335 @example 313 336 rtems_status_code rtems_signal_send( -
doc/user/task.t
r0de8359 r169502e 8 8 9 9 @chapter Task Manager 10 11 @cindex tasks 10 12 11 13 @section Introduction … … 36 38 @subsection Task Definition 37 39 40 @cindex task, definition 41 38 42 Many definitions of a task have been proposed in computer literature. 39 43 Unfortunately, none of these definitions encompasses all facets of the … … 87 91 88 92 @subsection Task States 93 94 @cindex task states 89 95 90 96 A task may exist in one of the following five states: … … 110 116 @subsection Task Priority 111 117 118 @cindex task priority 119 @cindex priority, task 120 112 121 A task's priority determines its importance in relation to the 113 122 other tasks executing on the same processor. RTEMS supports 255 … … 131 140 @subsection Task Mode 132 141 142 @cindex task mode 143 133 144 A task's mode is a combination of the following four components: 134 145 … … 142 153 It is used to modify RTEMS' scheduling process and to alter the 143 154 execution environment of the task. 155 156 @cindex preemption 144 157 145 158 The preemption component allows a task to determine when control of the … … 151 164 then the processor will be taken away from the current task immediately and 152 165 given to the higher priority task. 166 167 @cindex timeslicing 153 168 154 169 The timeslicing component is used by the RTEMS scheduler to determine how … … 172 187 routine to process asynchronous signals. 173 188 189 @cindex interrupt level, task 190 174 191 The interrupt level component is used to determine which 175 192 interrupts will be enabled when the task is executing. … … 190 207 @subsection Accessing Task Arguments 191 208 209 @cindex task arguments 210 192 211 All RTEMS tasks are invoked with a single argument which is 193 212 specified when they are started or restarted. The argument is … … 216 235 217 236 @subsection Floating Point Considerations 237 238 @cindex floating point 218 239 219 240 Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} flag results … … 268 289 @subsection Building a Task Attribute Set 269 290 291 @cindex task attributes, building 292 270 293 In general, an attribute set is built by a bitwise OR of the 271 294 desired components. The set of valid task attribute components … … 298 321 299 322 @subsection Building a Mode and Mask 323 324 @cindex task mode, building 300 325 301 326 In general, a mode and its corresponding mask is built by a … … 599 624 @subsection TASK_CREATE - Create a task 600 625 626 @cindex create a task 627 601 628 @subheading CALLING SEQUENCE: 602 629 603 630 @ifset is-C 604 @ c @findex rtems_task_create631 @findex rtems_task_create 605 632 @example 606 633 rtems_status_code rtems_task_create( … … 709 736 @subsection TASK_IDENT - Get ID of a task 710 737 738 @cindex get ID of a task 739 711 740 @subheading CALLING SEQUENCE: 712 741 713 742 @ifset is-C 714 @ c @findex rtems_task_ident743 @findex rtems_task_ident 715 744 @example 716 745 rtems_status_code rtems_task_ident( … … 765 794 @subsection TASK_START - Start a task 766 795 796 @cindex starting a task 797 767 798 @subheading CALLING SEQUENCE: 768 799 769 800 @ifset is-C 770 @ c @findex rtems_task_start801 @findex rtems_task_start 771 802 @example 772 803 rtems_status_code rtems_task_start( … … 816 847 @subsection TASK_RESTART - Restart a task 817 848 849 @cindex restarting a task 850 818 851 @subheading CALLING SEQUENCE: 819 852 820 853 @ifset is-C 821 @ c @findex rtems_task_restart854 @findex rtems_task_restart 822 855 @example 823 856 rtems_status_code rtems_task_restart( … … 879 912 @subsection TASK_DELETE - Delete a task 880 913 914 @cindex deleting a task 915 881 916 @subheading CALLING SEQUENCE: 882 917 883 918 @ifset is-C 884 @ c @findex rtems_task_delete919 @findex rtems_task_delete 885 920 @example 886 921 rtems_status_code rtems_task_delete( … … 937 972 @subsection TASK_SUSPEND - Suspend a task 938 973 974 @cindex suspending a task 975 939 976 @subheading CALLING SEQUENCE: 940 977 941 978 @ifset is-C 942 @ c @findex rtems_task_suspend979 @findex rtems_task_suspend 943 980 @example 944 981 rtems_status_code rtems_task_suspend( … … 987 1024 @subsection TASK_RESUME - Resume a task 988 1025 1026 @cindex resuming a task 1027 989 1028 @subheading CALLING SEQUENCE: 990 1029 991 1030 @ifset is-C 992 @ c @findex rtems_task_resume1031 @findex rtems_task_resume 993 1032 @example 994 1033 rtems_status_code rtems_task_resume( … … 1034 1073 @subsection TASK_IS_SUSPENDED - Determine if a task is Suspended 1035 1074 1075 @cindex is task suspended 1076 1036 1077 @subheading CALLING SEQUENCE: 1037 1078 1038 1079 @ifset is-C 1039 @ c @findex rtems_task_is_suspended1080 @findex rtems_task_is_suspended 1040 1081 @example 1041 1082 rtems_status_code rtems_task_is_suspended( … … 1073 1114 @subsection TASK_SET_PRIORITY - Set task priority 1074 1115 1116 @findex rtems_task_set_priority 1117 @cindex current task priority 1118 @cindex set task priority 1119 @cindex get task priority 1120 @cindex obtain task priority 1121 1075 1122 @subheading CALLING SEQUENCE: 1076 1123 1077 1124 @ifset is-C 1078 @c @findex rtems_task_set_priority1079 1125 @example 1080 1126 rtems_status_code rtems_task_set_priority( … … 1137 1183 @subsection TASK_MODE - Change the current task mode 1138 1184 1185 @cindex current task mode 1186 @cindex set task mode 1187 @cindex get task mode 1188 @cindex set task preemption mode 1189 @cindex get task preemption mode 1190 @cindex obtain task mode 1191 1139 1192 @subheading CALLING SEQUENCE: 1140 1193 1141 1194 @ifset is-C 1142 @ c @findex rtems_task_mode1195 @findex rtems_task_mode 1143 1196 @example 1144 1197 rtems_status_code rtems_task_mode( … … 1293 1346 @subsection TASK_GET_NOTE - Get task notepad entry 1294 1347 1348 @cindex get task notepad entry 1349 1295 1350 @subheading CALLING SEQUENCE: 1296 1351 1297 1352 @ifset is-C 1298 @ c @findex rtems_task_get_note1353 @findex rtems_task_get_note 1299 1354 @example 1300 1355 rtems_status_code rtems_task_get_note( … … 1347 1402 @subsection TASK_SET_NOTE - Set task notepad entry 1348 1403 1404 @cindex set task notepad entry 1405 1349 1406 @subheading CALLING SEQUENCE: 1350 1407 1351 1408 @ifset is-C 1352 @ c @findex rtems_task_set_note1409 @findex rtems_task_set_note 1353 1410 @example 1354 1411 rtems_status_code rtems_task_set_note( … … 1401 1458 @subsection TASK_WAKE_AFTER - Wake up after interval 1402 1459 1460 @cindex delay a task for an interval 1461 @cindex wake up after an interval 1462 1403 1463 @subheading CALLING SEQUENCE: 1404 1464 1405 1465 @ifset is-C 1406 @ c @findex rtems_task_wake_after1466 @findex rtems_task_wake_after 1407 1467 @example 1408 1468 rtems_status_code rtems_task_wake_after( … … 1447 1507 @subsection TASK_WAKE_WHEN - Wake up when specified 1448 1508 1509 @cindex delay a task until a wall time 1510 @cindex wake up at a wall time 1511 1449 1512 @subheading CALLING SEQUENCE: 1450 1513 1451 1514 @ifset is-C 1452 @ c @findex rtems_task_wake_when1515 @findex rtems_task_wake_when 1453 1516 @example 1454 1517 rtems_status_code rtems_task_wake_when( -
doc/user/timer.t
r0de8359 r169502e 8 8 9 9 @chapter Timer Manager 10 11 @cindex timers 10 12 11 13 @section Introduction … … 153 155 and status codes. 154 156 157 @c 158 @c 159 @c 155 160 @page 156 161 @subsection TIMER_CREATE - Create a timer 157 162 158 @subheading CALLING SEQUENCE: 159 160 @ifset is-C 161 @c @findex rtems_timer_create 163 @cindex create a timer 164 165 @subheading CALLING SEQUENCE: 166 167 @ifset is-C 168 @findex rtems_timer_create 162 169 @example 163 170 rtems_status_code rtems_timer_create( … … 196 203 preempted. 197 204 205 @c 206 @c 207 @c 198 208 @page 199 209 @subsection TIMER_IDENT - Get ID of a timer 200 210 201 @subheading CALLING SEQUENCE: 202 203 @ifset is-C 204 @c @findex rtems_timer_ident 211 @cindex obtain the ID of a timer 212 213 @subheading CALLING SEQUENCE: 214 215 @ifset is-C 216 @findex rtems_timer_ident 205 217 @example 206 218 rtems_status_code rtems_timer_ident( … … 239 251 preempted. 240 252 253 @c 254 @c 255 @c 241 256 @page 242 257 @subsection TIMER_CANCEL - Cancel a timer 243 258 244 @subheading CALLING SEQUENCE: 245 246 @ifset is-C 247 @c @findex rtems_timer_cancel 259 @cindex cancel a timer 260 261 @subheading CALLING SEQUENCE: 262 263 @ifset is-C 264 @findex rtems_timer_cancel 248 265 @example 249 266 rtems_status_code rtems_timer_cancel( … … 277 294 This directive will not cause the running task to be preempted. 278 295 296 @c 297 @c 298 @c 279 299 @page 280 300 @subsection TIMER_DELETE - Delete a timer 281 301 282 @subheading CALLING SEQUENCE: 283 284 @ifset is-C 285 @c @findex rtems_timer_delete 302 @cindex delete a timer 303 304 @subheading CALLING SEQUENCE: 305 306 @ifset is-C 307 @findex rtems_timer_delete 286 308 @example 287 309 rtems_status_code rtems_timer_delete( … … 318 340 which created the timer. 319 341 342 @c 343 @c 344 @c 320 345 @page 321 346 @subsection TIMER_FIRE_AFTER - Fire timer after interval 322 347 323 @subheading CALLING SEQUENCE: 324 325 @ifset is-C 326 @c @findex rtems_timer_fire_after 348 @cindex fire a timer after an interval 349 350 @subheading CALLING SEQUENCE: 351 352 @ifset is-C 353 @findex rtems_timer_fire_after 327 354 @example 328 355 rtems_status_code rtems_timer_fire_after( … … 366 393 preempted. 367 394 395 @c 396 @c 397 @c 368 398 @page 369 399 @subsection TIMER_FIRE_WHEN - Fire timer when specified 370 400 371 @subheading CALLING SEQUENCE: 372 373 @ifset is-C 374 @c @findex rtems_timer_fire_when 401 @cindex fire a timer at wall time 402 403 @subheading CALLING SEQUENCE: 404 405 @ifset is-C 406 @findex rtems_timer_fire_when 375 407 @example 376 408 rtems_status_code rtems_timer_fire_when( … … 415 447 preempted. 416 448 449 @c 450 @c 451 @c 417 452 @page 418 453 @subsection TIMER_RESET - Reset an interval timer 419 454 420 @subheading CALLING SEQUENCE: 421 422 @ifset is-C 423 @c @findex rtems_timer_reset 455 @cindex reset a timer 456 457 @subheading CALLING SEQUENCE: 458 459 @ifset is-C 460 @findex rtems_timer_reset 424 461 @example 425 462 rtems_status_code rtems_timer_reset( -
doc/user/userext.t
r0de8359 r169502e 8 8 9 9 @chapter User Extensions Manager 10 11 @cindex user extensions 10 12 11 13 @section Introduction … … 44 46 45 47 @subsection Extension Sets 48 49 @cindex extension set 46 50 47 51 An extension set is defined as a set of routines … … 119 123 @subsection TCB Extension Area 120 124 125 @cindex TCB extension area 126 121 127 RTEMS provides for a pointer to a user-defined data 122 128 area for each extension set to be linked to each task's control … … 526 532 constants, usage, and status codes. 527 533 534 @c 535 @c 536 @c 528 537 @page 529 538 @subsection EXTENSION_CREATE - Create a extension set 530 539 540 @cindex create an extension set 541 531 542 @subheading CALLING SEQUENCE: 532 543 533 544 @ifset is-C 534 @ c @findex rtems_extension_create545 @findex rtems_extension_create 535 546 @example 536 547 rtems_status_code rtems_extension_create( … … 572 583 preempted. 573 584 585 @c 586 @c 587 @c 574 588 @page 575 589 @subsection EXTENSION_IDENT - Get ID of a extension set 576 590 591 @cindex get ID of an extension set 592 @cindex obtain ID of an extension set 593 577 594 @subheading CALLING SEQUENCE: 578 595 579 596 @ifset is-C 580 @ c @findex rtems_extension_ident597 @findex rtems_extension_ident 581 598 @example 582 599 rtems_status_code rtems_extension_ident( … … 616 633 preempted. 617 634 635 @c 636 @c 637 @c 618 638 @page 619 639 @subsection EXTENSION_DELETE - Delete a extension set 620 640 641 @cindex delete an extension set 642 621 643 @subheading CALLING SEQUENCE: 622 644 623 645 @ifset is-C 624 @ c @findex rtems_extension_delete646 @findex rtems_extension_delete 625 647 @example 626 648 rtems_status_code rtems_extension_delete(
Note: See TracChangeset
for help on using the changeset viewer.