Changeset 0a535af in rtems


Ignore:
Timestamp:
Jun 28, 2002, 7:14:44 PM (18 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
b2e3795
Parents:
b43314a
Message:

2001-06-28 Joel Sherrill <joel@…>

  • preface.texi, procenv.t, process.t, signal.t, stamp-vti, version.texi: Updated as part of starting a sweep on the POSIX User's Guide.
Location:
doc/posix_users
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • doc/posix_users/ChangeLog

    rb43314a r0a535af  
     12001-06-28      Joel Sherrill <joel@OARcorp.com>
     2
     3        * preface.texi, procenv.t, process.t, signal.t, stamp-vti,
     4        version.texi: Updated as part of starting a sweep on the POSIX
     5        User's Guide.
    162002-03-27      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
    27
  • doc/posix_users/preface.texi

    rb43314a r0a535af  
    2424@item POSIX 1003.1h/D3.
    2525
     26@item Open Group Single UNIX Specification.
     27
    2628@end itemize
    2729
    2830Much of the POSIX API standard is actually implemented in the
    2931Cygnus Newlib ANSI C Library.  Please refer to documentation on
    30 Newlib for more information on what it supplies.
     32Newlib for more information on the functionality it supplies.
    3133
    32 At this point, this is just beginning to become what it
    33 ultimately should be.
     34This manual is still under construction and improvements
     35are welcomed from users.
    3436
  • doc/posix_users/procenv.t

    rb43314a r0a535af  
    1111@section Introduction
    1212
    13 The process environment manager is ...
     13The process environment manager is responsible for providing the
     14functions related to user and group Id management.
    1415
    1516The directives provided by the process environment manager are:
     
    4344@section Background
    4445
    45 There is currently no text in this section.
     46@subsection Users and Groups
     47
     48RTEMS provides a single process, multi-threaded execution environment.
     49In this light, the notion of user and group is somewhat without meaning.
     50But RTEMS does provide services to provide a synthetic version of
     51user and group.  By default, a single user and group is associated
     52with the application.  Thus unless special actions are taken,
     53every thread in the application shares the same user and group Id.
     54The initial rationale for providing user and group Id functionality
     55in RTEMS was for the filesystem infrastructure to implement
     56file permission checks.  The effective user/group Id capability
     57has since been used to implement permissions checking by
     58the @code{ftpd} server.
     59
     60In addition to the "real" user and group Ids, a process may
     61have an effective user/group Id.  This allows a process to
     62function using a more limited permission set for certain operations.
     63
     64@subsection User and Group Names
     65
     66POSIX considers user and group Ids to be a unique integer that
     67may be associated with a name.  This is usually accomplished
     68via a file named @code{/etc/passwd} for user Id mapping and
     69@code{/etc/groups} for group Id mapping.  Again, although
     70RTEMS is effectively a single process and thus single user
     71system, it provides limited support for user and group
     72names.  When configured with an appropriate filesystem, RTEMS
     73will access the appropriate files to map user and group Ids
     74to names.
     75
     76If these files do not exist, then RTEMS will synthesize
     77a minimal version so this family of services return without
     78error.  It is important to remember that a design goal of
     79the RTEMS POSIX services is to provide useable and
     80meaningful results even though a full process model
     81is not available.
     82
     83@subsection Environment Variables
     84
     85POSIX allows for variables in the run-time environment.  These are
     86name/value pairs that make be dynamically set and obtained by
     87programs.  In a full POSIX environment with command line shell
     88and multiple processes,  environment variables may be set in
     89one process -- such as the shell -- and inherited by child
     90processes.  In RTEMS, there is only one process and thus
     91only one set of environment variables across all processes.
     92
    4693
    4794@section Operations
    4895
    49 There is currently no text in this section.
     96@subsection Accessing User and Group Ids
     97
     98The user Id associated with the current thread may be obtain
     99using the @code{getuid()} service.  Similarly, the group Id
     100may be obtained using the @code{getgid()} service. 
     101
     102@subsection Accessing Environment Variables
     103
     104The value associated with an environment variable may be
     105obtained using the @code{getenv()} service and set using
     106the @code{putenv()} service.
    50107
    51108@section Directives
     
    69126@ifset is-C
    70127@example
    71 int getpid(
    72 );
    73 @end example
    74 @end ifset
    75 
    76 @ifset is-Ada
    77 @end ifset
    78 
    79 @subheading STATUS CODES:
    80 
    81 @table @b
    82 @item E
    83 The
    84 
    85 @end table
    86 
    87 @subheading DESCRIPTION:
    88 
    89 @subheading NOTES:
     128int getpid( void );
     129@end example
     130@end ifset
     131
     132@ifset is-Ada
     133@end ifset
     134
     135@subheading STATUS CODES:
     136
     137The process Id is returned.
     138
     139@subheading DESCRIPTION:
     140
     141This service returns the process Id.
     142
     143@subheading NOTES:
     144
     145NONE
    90146
    91147@c
     
    102158@ifset is-C
    103159@example
    104 int getppid(
    105 );
    106 @end example
    107 @end ifset
    108 
    109 @ifset is-Ada
    110 @end ifset
    111 
    112 @subheading STATUS CODES:
    113 
    114 @table @b
    115 @item E
    116 The
    117 
    118 @end table
    119 
    120 @subheading DESCRIPTION:
    121 
    122 @subheading NOTES:
     160int getppid( void );
     161@end example
     162@end ifset
     163
     164@ifset is-Ada
     165@end ifset
     166
     167@subheading STATUS CODES:
     168
     169The parent process Id is returned.
     170
     171@subheading DESCRIPTION:
     172
     173This service returns the parent process Id.
     174
     175@subheading NOTES:
     176
     177NONE
    123178
    124179@c
     
    135190@ifset is-C
    136191@example
    137 int getuid(
    138 );
    139 @end example
    140 @end ifset
    141 
    142 @ifset is-Ada
    143 @end ifset
    144 
    145 @subheading STATUS CODES:
    146 
    147 @table @b
    148 @item E
    149 The
    150 
    151 @end table
    152 
    153 @subheading DESCRIPTION:
    154 
    155 @subheading NOTES:
     192int getuid( void );
     193@end example
     194@end ifset
     195
     196@ifset is-Ada
     197@end ifset
     198
     199@subheading STATUS CODES:
     200
     201The effective user Id is returned.
     202
     203@subheading DESCRIPTION:
     204
     205This service returns the effective user Id.
     206
     207@subheading NOTES:
     208
     209NONE
    156210
    157211@c
     
    168222@ifset is-C
    169223@example
    170 int geteuid(
    171 );
    172 @end example
    173 @end ifset
    174 
    175 @ifset is-Ada
    176 @end ifset
    177 
    178 @subheading STATUS CODES:
    179 
    180 @table @b
    181 @item E
    182 The
    183 
    184 @end table
    185 
    186 @subheading DESCRIPTION:
    187 
    188 @subheading NOTES:
     224int geteuid( void );
     225@end example
     226@end ifset
     227
     228@ifset is-Ada
     229@end ifset
     230
     231@subheading STATUS CODES:
     232
     233The effective group Id is returned.
     234
     235@subheading DESCRIPTION:
     236
     237This service returns the effective group Id.
     238
     239@subheading NOTES:
     240
     241NONE
    189242
    190243@c
     
    201254@ifset is-C
    202255@example
    203 int getgid(
    204 );
    205 @end example
    206 @end ifset
    207 
    208 @ifset is-Ada
    209 @end ifset
    210 
    211 @subheading STATUS CODES:
    212 
    213 @table @b
    214 @item E
    215 The
    216 
    217 @end table
    218 
    219 @subheading DESCRIPTION:
    220 
    221 @subheading NOTES:
     256int getgid( void );
     257@end example
     258@end ifset
     259
     260@ifset is-Ada
     261@end ifset
     262
     263@subheading STATUS CODES:
     264
     265The group Id is returned.
     266
     267@subheading DESCRIPTION:
     268
     269This service returns the group Id.
     270
     271@subheading NOTES:
     272
     273NONE
    222274
    223275@c
     
    234286@ifset is-C
    235287@example
    236 int getegid(
    237 );
    238 @end example
    239 @end ifset
    240 
    241 @ifset is-Ada
    242 @end ifset
    243 
    244 @subheading STATUS CODES:
    245 
    246 @table @b
    247 @item E
    248 The
    249 
    250 @end table
    251 
    252 @subheading DESCRIPTION:
    253 
    254 @subheading NOTES:
     288int getegid( void );
     289@end example
     290@end ifset
     291
     292@ifset is-Ada
     293@end ifset
     294
     295@subheading STATUS CODES:
     296
     297The effective group Id is returned.
     298
     299@subheading DESCRIPTION:
     300
     301This service returns the effective group Id.
     302
     303@subheading NOTES:
     304
     305NONE
    255306
    256307@c
     
    268319@example
    269320int setuid(
    270 );
    271 @end example
    272 @end ifset
    273 
    274 @ifset is-Ada
    275 @end ifset
    276 
    277 @subheading STATUS CODES:
    278 
    279 @table @b
    280 @item E
    281 The
    282 
    283 @end table
    284 
    285 @subheading DESCRIPTION:
    286 
    287 @subheading NOTES:
     321  uid_t uid
     322);
     323@end example
     324@end ifset
     325
     326@ifset is-Ada
     327@end ifset
     328
     329@subheading STATUS CODES:
     330
     331This service returns 0.
     332
     333@subheading DESCRIPTION:
     334
     335This service sets the user Id to @code{uid}.
     336
     337@subheading NOTES:
     338
     339NONE
    288340
    289341@c
     
    301353@example
    302354int setgid(
    303 );
    304 @end example
    305 @end ifset
    306 
    307 @ifset is-Ada
    308 @end ifset
    309 
    310 @subheading STATUS CODES:
    311 
    312 @table @b
    313 @item E
    314 The
    315 
    316 @end table
    317 
    318 @subheading DESCRIPTION:
    319 
    320 @subheading NOTES:
     355  gid_t  gid
     356);
     357@end example
     358@end ifset
     359
     360@ifset is-Ada
     361@end ifset
     362
     363@subheading STATUS CODES:
     364
     365This service returns 0.
     366
     367@subheading DESCRIPTION:
     368
     369This service sets the group Id to @code{gid}.
     370
     371@subheading NOTES:
     372
     373NONE
    321374
    322375@c
     
    334387@example
    335388int getgroups(
    336 );
    337 @end example
    338 @end ifset
    339 
    340 @ifset is-Ada
    341 @end ifset
    342 
    343 @subheading STATUS CODES:
    344 
    345 @table @b
    346 @item E
    347 The
    348 
    349 @end table
    350 
    351 @subheading DESCRIPTION:
    352 
    353 @subheading NOTES:
     389  int    gidsetsize,
     390  gid_t  grouplist[]
     391);
     392@end example
     393@end ifset
     394
     395@ifset is-Ada
     396@end ifset
     397
     398@subheading STATUS CODES:
     399
     400NA
     401
     402@subheading DESCRIPTION:
     403
     404This service is not implemented as RTEMS has no notion of
     405supplemental groups.
     406
     407@subheading NOTES:
     408
     409If supported, this routine would only be allowed for
     410the super-user.
    354411
    355412@c
     
    366423@ifset is-C
    367424@example
    368 int getlogin(
    369 );
    370 @end example
    371 @end ifset
    372 
    373 @ifset is-Ada
    374 @end ifset
    375 
    376 @subheading STATUS CODES:
    377 
    378 @table @b
    379 @item E
    380 The
    381 
    382 @end table
    383 
    384 @subheading DESCRIPTION:
    385 
    386 @subheading NOTES:
     425char *getlogin( void );
     426@end example
     427@end ifset
     428
     429@ifset is-Ada
     430@end ifset
     431
     432@subheading STATUS CODES:
     433
     434Returns a pointer to a string containing the name of the
     435current user.
     436
     437@subheading DESCRIPTION:
     438
     439This routine returns the name of the current user.
     440
     441@subheading NOTES:
     442
     443This routine is not reentrant and subsequent calls to
     444@code{getlogin()} will overwrite the same buffer.
    387445
    388446@c
     
    394452@findex getlogin_r
    395453@cindex  reentrant get user name
     454@cindex  get user name, reentrant
    396455
    397456@subheading CALLING SEQUENCE:
     
    400459@example
    401460int getlogin_r(
     461  char   *name,
     462  size_t  namesize 
    402463);
    403464@end example
     
    410471
    411472@table @b
    412 @item E
    413 The
     473@item EINVAL
     474The arguments were invalid.
    414475
    415476@end table
     
    417478@subheading DESCRIPTION:
    418479
    419 @subheading NOTES:
     480This is a reentrant version of the @code{getlogin()} service.  The
     481caller specified their own buffer, @code{name}, as well as the
     482length of this buffer, @code{namesize}.
     483
     484@subheading NOTES:
     485
     486NONE
    420487
    421488@c
     
    432499@ifset is-C
    433500@example
    434 int getpgrp(
    435 );
    436 @end example
    437 @end ifset
    438 
    439 @ifset is-Ada
    440 @end ifset
    441 
    442 @subheading STATUS CODES:
    443 
    444 @table @b
    445 @item E
    446 The
    447 
    448 @end table
    449 
    450 @subheading DESCRIPTION:
    451 
    452 @subheading NOTES:
     501pid_t getpgrp( void );
     502@end example
     503@end ifset
     504
     505@ifset is-Ada
     506@end ifset
     507
     508@subheading STATUS CODES:
     509
     510The procress group Id is returned.
     511
     512@subheading DESCRIPTION:
     513
     514This service returns the current progress group Id.
     515
     516@subheading NOTES:
     517
     518This routine is implemented in a somewhat meaningful
     519way for RTEMS but is truly not functional.
    453520
    454521@c
     
    465532@ifset is-C
    466533@example
    467 int setsid(
    468 );
     534pid_t setsid( void );
    469535@end example
    470536@end ifset
     
    476542
    477543@table @b
    478 @item E
    479 The
     544@item EPERM
     545The application does not have permission to create a process group.
    480546
    481547@end table
     
    483549@subheading DESCRIPTION:
    484550
    485 @subheading NOTES:
     551This routine always returns @code{EPERM} as RTEMS has no way
     552to create new processes and thus no way to create a new process
     553group.
     554
     555@subheading NOTES:
     556
     557NONE
    486558
    487559@c
     
    499571@example
    500572int setpgid(
     573  pid_t pid,
     574  pid_t pgid
    501575);
    502576@end example
     
    509583
    510584@table @b
    511 @item E
    512 The
     585@item ENOSYS
     586The routine is not implemented.
    513587
    514588@end table
     
    516590@subheading DESCRIPTION:
    517591
    518 @subheading NOTES:
     592This service is not implemented for RTEMS as process groups are not
     593supported.
     594
     595@subheading NOTES:
     596
     597NONE
    519598
    520599@c
     
    532611@example
    533612int uname(
     613  struct utsname *name
    534614);
    535615@end example
     
    542622
    543623@table @b
    544 @item E
    545 The
     624@item EPERM
     625The provided structure pointer is invalid.
    546626
    547627@end table
     
    549629@subheading DESCRIPTION:
    550630
    551 @subheading NOTES:
     631This service returns system information to the caller.  It does this
     632by filling in the @code{struct utsname} format structure for the
     633caller.
     634
     635@subheading NOTES:
     636
     637The information provided includes the operating system (RTEMS in
     638all configurations), the node number, the release as the RTEMS
     639version, and the CPU family and model.  The CPU model name
     640will indicate the multilib executive variant being used.
    552641
    553642@c
     
    566655
    567656clock_t times(
    568   struct tms *buf
    569 );
    570 @end example
    571 
    572 @subheading STATUS CODES:
    573 
    574 This routine returns the process times
    575 
    576 @subheading DESCRIPTION:
    577 
    578 @code{times} stores the current process times in @code{buf}.
    579 
    580 @code{struct tms} is as defined in @code{/usr/include/sys/times.h}
    581 
    582 @code{times} returns the number of clock ticks that have elapsed
    583 since the systm has been up.
    584 
    585 @subheading NOTES:
    586 
    587 NONE
     657  struct tms *ptms
     658);
     659@end example
     660
     661@subheading STATUS CODES:
     662
     663This routine returns the number of clock ticks that have elapsed
     664since the system was initialized (e.g. the application was
     665started).
     666
     667@subheading DESCRIPTION:
     668
     669@code{times} stores the current process times in @code{ptms}.  The
     670format of @code{struct tms} is as defined in
     671@code{<sys/times.h>}.  RTEMS fills in the field @code{tms_utime}
     672with the number of ticks that the calling thread has executed
     673and the field @code{tms_stime} with the number of clock ticks
     674since system boot (also returned).  All other fields in the
     675@code{ptms} are left zero.
     676
     677@subheading NOTES:
     678
     679RTEMS has no way to distinguish between user and system time
     680so this routine returns the most meaningful information
     681possible.
    588682
    589683@c
     
    600694@ifset is-C
    601695@example
    602 int getenv(
     696char *getenv(
     697  const char *name
    603698);
    604699@end example
     
    611706
    612707@table @b
    613 @item E
    614 The
     708@item NULL
     709when no match
     710
     711@item pointer to value
     712when successful
    615713
    616714@end table
     
    618716@subheading DESCRIPTION:
    619717
    620 @subheading NOTES:
     718This service searches the set of environment variables for
     719a string that matches the specified @code{name}.  If found,
     720it returns the associated value.
     721
     722@subheading NOTES:
     723
     724The environment list consists of name value pairs that
     725are of the form @i{name = value}.
    621726
    622727@c
     
    634739@example
    635740int setenv(
    636 );
    637 @end example
    638 @end ifset
    639 
    640 @ifset is-Ada
    641 @end ifset
    642 
    643 @subheading STATUS CODES:
    644 
    645 @table @b
    646 @item E
    647 The
    648 
    649 @end table
    650 
    651 @subheading DESCRIPTION:
    652 
    653 @subheading NOTES:
     741  const char *name,
     742  const char *value,
     743  int overwrite
     744);
     745@end example
     746@end ifset
     747
     748@ifset is-Ada
     749@end ifset
     750
     751@subheading STATUS CODES:
     752
     753Returns 0 if successful and -1 otherwise.
     754
     755@subheading DESCRIPTION:
     756
     757This service adds the variable @code{name} to the environment with
     758@code{value}.  If @code{name} is not already exist, then it is
     759created.  If @code{name} exists and @code{overwrite} is zero, then
     760the previous value is not overwritten.
     761
     762@subheading NOTES:
     763
     764NONE
    654765
    655766@c
     
    666777@ifset is-C
    667778@example
    668 int ctermid(
    669 );
    670 @end example
    671 @end ifset
    672 
    673 @ifset is-Ada
    674 @end ifset
    675 
    676 @subheading STATUS CODES:
    677 
    678 @table @b
    679 @item E
    680 The
    681 
    682 @end table
    683 
    684 @subheading DESCRIPTION:
    685 
    686 @subheading NOTES:
     779char *ctermid(
     780  char *s
     781);
     782@end example
     783@end ifset
     784
     785@ifset is-Ada
     786@end ifset
     787
     788@subheading STATUS CODES:
     789
     790Returns a pointer to a string indicating the pathname for the controlling
     791terminal.
     792
     793@subheading DESCRIPTION:
     794
     795This service returns the name of the terminal device associated with
     796this process.  If @code{s} is NULL, then a pointer to a static buffer
     797is returned.  Otherwise, @code{s} is assumed to have a buffer of
     798sufficient size to contain the name of the controlling terminal.
     799
     800@subheading NOTES:
     801
     802By default on RTEMS systems, the controlling terminal is @code{/dev/console}.
     803Again this implementation is of limited meaning, but it provides
     804true and useful results which should be sufficient to ease porting
     805applications from a full POSIX implementation to the reduced
     806profile supported by RTEMS.
    687807
    688808@c
     
    699819@ifset is-C
    700820@example
    701 int ttyname(
    702 );
    703 @end example
    704 @end ifset
    705 
    706 @ifset is-Ada
    707 @end ifset
    708 
    709 @subheading STATUS CODES:
    710 
    711 @table @b
    712 @item E
    713 The
    714 
    715 @end table
    716 
    717 @subheading DESCRIPTION:
    718 
    719 @subheading NOTES:
     821char *ttyname(
     822  int fd
     823);
     824@end example
     825@end ifset
     826
     827@ifset is-Ada
     828@end ifset
     829
     830@subheading STATUS CODES:
     831
     832Pointer to a string containing the terminal device name or
     833NULL is returned on any error.
     834
     835@subheading DESCRIPTION:
     836
     837This service returns a pointer to the pathname of the terminal
     838device that is open on the file descriptor @code{fd}.  If
     839@code{fd} is not a valid descriptor for a terminal device,
     840then NULL is returned.
     841
     842@subheading NOTES:
     843
     844This routine uses a static buffer.
    720845
    721846@c
     
    733858@example
    734859int ttyname_r(
    735 );
    736 @end example
    737 @end ifset
    738 
    739 @ifset is-Ada
    740 @end ifset
    741 
    742 @subheading STATUS CODES:
     860  int   fd,
     861  char *name,
     862  int   namesize
     863);
     864@end example
     865@end ifset
     866
     867@ifset is-Ada
     868@end ifset
     869
     870@subheading STATUS CODES:
     871
     872This routine returns -1 and sets @code{errno} as follows:
    743873
    744874@table @b
    745 @item E
    746 The
     875@item EBADF
     876If not a valid descriptor for a terminal device.
     877
     878@item EINVAL
     879If @code{name} is NULL or @code{namesize} are insufficient.
    747880
    748881@end table
     
    750883@subheading DESCRIPTION:
    751884
    752 @subheading NOTES:
     885This service the pathname of the terminal device that is open
     886on the file descriptor @code{fd}. 
     887
     888@subheading NOTES:
     889
     890NONE
    753891
    754892@c
     
    766904@example
    767905int isatty(
    768 );
    769 @end example
    770 @end ifset
    771 
    772 @ifset is-Ada
    773 @end ifset
    774 
    775 @subheading STATUS CODES:
    776 
    777 @table @b
    778 @item E
    779 The
    780 
    781 @end table
    782 
    783 @subheading DESCRIPTION:
     906  int fd
     907);
     908@end example
     909@end ifset
     910
     911@ifset is-Ada
     912@end ifset
     913
     914@subheading STATUS CODES:
     915
     916Returns 1 if @code{fd} is a terminal device and 0 otherwise.
     917
     918@subheading DESCRIPTION:
     919
     920This service returns 1 if @code{fd} is an open file descriptor
     921connected to a terminal and 0 otherwise.
    784922
    785923@subheading NOTES:
     
    798936@ifset is-C
    799937@example
    800 int sysconf(
    801 );
    802 @end example
    803 @end ifset
    804 
    805 @ifset is-Ada
    806 @end ifset
    807 
    808 @subheading STATUS CODES:
    809 
    810 @table @b
    811 @item E
    812 The
    813 
    814 @end table
    815 
    816 @subheading DESCRIPTION:
    817 
    818 @subheading NOTES:
    819 
     938long sysconf(
     939  int name
     940);
     941@end example
     942@end ifset
     943
     944@ifset is-Ada
     945@end ifset
     946
     947@subheading STATUS CODES:
     948
     949The value returned is the actual value of the system resource.
     950If the requested configuration name is a feature flag, then
     9511 is returned if the available and 0 if it is not.  On any
     952other error condition, -1 is returned.
     953
     954@subheading DESCRIPTION:
     955
     956This service is the mechanism by which an application determines
     957values for system limits or options at runtime.
     958
     959@subheading NOTES:
     960
     961Much of the information that may be obtained via @code{sysconf}
     962has equivalent macros in @code{<unistd.h}.  However, those
     963macros reflect conservative limits which may have been altered
     964by application configuration.
  • doc/posix_users/process.t

    rb43314a r0a535af  
    1111@section Introduction
    1212
    13 The process creation and execution manager is ...
     13The process creation and execution manager provides the
     14functionality associated with the creation and termination
     15of processes. 
     16
    1417
    1518The directives provided by the process creation and execution manager are:
     
    3134@section Background
    3235
    33 There is currently no text in this section.
     36POSIX process functionality can not be completely
     37supported by RTEMS.  This is because RTEMS provides no memory
     38protection and implements a @i{single process, multi-threaded
     39execution model}.  In this light, RTEMS provides none of the
     40routines that are associated with the creation of new processes.
     41However, since the entire RTEMS application (e.g. executable)
     42is logically a single POSIX process, RTEMS is able to provide
     43implementations of many operations on processes.  The rule of
     44thumb is that those routines provide a meaningful result.
     45For example, @code{getpid()} returns the node number.
    3446
    3547@section Operations
    3648
    37 There is currently no text in this section.
     49The only functionality method defined by this manager which is
     50supported by RTEMS is the @code{_exit} service.  The
     51implementation of @code{_exit} shuts the application down and
     52is equivalent to invoking either @code{exit} or
     53@code{rtems_shutdown_executive}.
    3854
    3955@section Directives
  • doc/posix_users/signal.t

    rb43314a r0a535af  
    1111@section Introduction
    1212
    13 The signal manager ...
     13The signal manager provides the functionality associated with
     14the generation, delivery, and management of process-oriented
     15signals.
    1416
    1517The directives provided by the signal manager are:
     
    3840@section Background
    3941
     42@subsection Signals
     43
     44POSIX signals are an asynchronous event mechanism.  Each process
     45and thread has a set of signals associated with it.  Individual
     46signals may be enabled (e.g. unmasked) or blocked (e.g. ignored)
     47on both a per-thread and process level.  Signals which are
     48enabled have a signal handler associated with them.  When the
     49signal is generated and conditions are met, then the signal
     50handler is invoked in the proper process or thread context
     51asynchronous relative to the logical thread of execution.
     52
     53If a signal has been blocked when it is generated, then it
     54is queued and kept pending until the thread or process unblocks
     55the signal or explicitly checks for it.
     56Traditional, non-real-time POSIX signals do not queue.  Thus
     57if a process or thread has blocked a particular signal, then
     58multiple occurrences of that signal are recorded as a
     59single occurrence of that signal. 
     60
     61One can check for the set of outstanding signals that have been
     62blocked.   Services are provided to check for outstanding process
     63or thread directed signals.
     64
    4065@subsection Signal Delivery
    4166
    42 Signals directed at a thread are delivered to the specified thread.
    43 
    44 Signals directed at a process are delivered to a thread which is selected
    45 based on the following algorithm:
     67Signals which are directed at a thread are delivered to the specified thread.
     68
     69Signals which are directed at a process are delivered to a thread which
     70is selected based on the following algorithm:
    4671
    4772@enumerate
     
    7297@section Operations
    7398
    74 There is currently no text in this section.
     99@subsection Signal Set Management
     100
     101Each process and each thread within that process has a set of
     102individual signals and handlers associated with it.   Services
     103are provided to construct signal sets for the purposes of building
     104signal sets -- type @code{sigset_t} -- that are used to
     105provide arguments to the services that mask, unmask, and
     106check on pending signals.
     107
     108@subsection Blocking Until Signal Generation
     109
     110A thread may block until receipt of a signal.  The "sigwait"
     111and "pause" families of services block until the requested
     112signal is received or if using @code{sigtimedwait()} until the specified
     113timeout period has elapsed.
     114
     115@subsection Sending a Signal
     116
     117This is accomplished
     118via one of a number of services that sends a signal to either a
     119process or thread.  Signals may be directed at a process by
     120the service @code{kill()} or at a thread by the service
     121@code{pthread_kill()}
    75122
    76123@section Directives
     
    619666@subheading DESCRIPTION:
    620667
    621 This function causes the calling thread to be blocked until the signal
    622 is received.
     668This function causes the calling thread to be blocked until an
     669unblocked signal is received.
    623670
    624671@subheading NOTES:
  • doc/posix_users/stamp-vti

    rb43314a r0a535af  
    11@set UPDATED 17 January 2002
    22@set UPDATED-MONTH January 2002
    3 @set EDITION Snapshot
    4 @set VERSION Snapshot
     3@set EDITION ss-20020528
     4@set VERSION ss-20020528
  • doc/posix_users/version.texi

    rb43314a r0a535af  
    11@set UPDATED 17 January 2002
    22@set UPDATED-MONTH January 2002
    3 @set EDITION Snapshot
    4 @set VERSION Snapshot
     3@set EDITION ss-20020528
     4@set VERSION ss-20020528
Note: See TracChangeset for help on using the changeset viewer.