From c5f52e9725745b0cd81e3b2b4881fc2360f830ec Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Mon, 18 Aug 2003 07:31:32 +0000 Subject: 2003-08-18 Ralf Corsepius PR 449/rtems: * src/getegid.c: New (Copied from ../posix/src). * src/geteuid.c: New (Copied from ../posix/src). * src/getgid.c: New (Copied from ../posix/src). * src/getgroups.c: New (Copied from ../posix/src). * src/getlogin.c: New (Copied from ../posix/src). * src/getpgrp.c: New (Copied from ../posix/src). * src/getpid.c: New (Copied from ../posix/src). * src/getppid.c: New (Copied from ../posix/src). * src/getuid.c: New (Copied from ../posix/src). * src/setpgid.c: New (Copied from ../posix/src). * src/setsid.c: New (Copied from ../posix/src). * src/no_posix: Remove getpid and _getpid_r. * Makefile.am: Reflect changes above. --- cpukit/libcsupport/ChangeLog | 19 ++++++++++- cpukit/libcsupport/Makefile.am | 6 +++- cpukit/libcsupport/src/getegid.c | 33 ++++++++++++++++++++ cpukit/libcsupport/src/geteuid.c | 33 ++++++++++++++++++++ cpukit/libcsupport/src/getgid.c | 47 ++++++++++++++++++++++++++++ cpukit/libcsupport/src/getgroups.c | 30 ++++++++++++++++++ cpukit/libcsupport/src/getlogin.c | 64 ++++++++++++++++++++++++++++++++++++++ cpukit/libcsupport/src/getpgrp.c | 31 ++++++++++++++++++ cpukit/libcsupport/src/getpid.c | 45 +++++++++++++++++++++++++++ cpukit/libcsupport/src/getppid.c | 29 +++++++++++++++++ cpukit/libcsupport/src/getuid.c | 47 ++++++++++++++++++++++++++++ cpukit/libcsupport/src/list | 11 +++++++ cpukit/libcsupport/src/no_posix.c | 21 ------------- cpukit/libcsupport/src/setpgid.c | 29 +++++++++++++++++ cpukit/libcsupport/src/setsid.c | 28 +++++++++++++++++ 15 files changed, 450 insertions(+), 23 deletions(-) create mode 100644 cpukit/libcsupport/src/getegid.c create mode 100644 cpukit/libcsupport/src/geteuid.c create mode 100644 cpukit/libcsupport/src/getgid.c create mode 100644 cpukit/libcsupport/src/getgroups.c create mode 100644 cpukit/libcsupport/src/getlogin.c create mode 100644 cpukit/libcsupport/src/getpgrp.c create mode 100644 cpukit/libcsupport/src/getpid.c create mode 100644 cpukit/libcsupport/src/getppid.c create mode 100644 cpukit/libcsupport/src/getuid.c create mode 100644 cpukit/libcsupport/src/list create mode 100644 cpukit/libcsupport/src/setpgid.c create mode 100644 cpukit/libcsupport/src/setsid.c (limited to 'cpukit') diff --git a/cpukit/libcsupport/ChangeLog b/cpukit/libcsupport/ChangeLog index a520d4c332..a94bca2388 100644 --- a/cpukit/libcsupport/ChangeLog +++ b/cpukit/libcsupport/ChangeLog @@ -1,7 +1,24 @@ +2003-08-18 Ralf Corsepius + + PR 449/rtems: + * src/getegid.c: New (Copied from ../posix/src). + * src/geteuid.c: New (Copied from ../posix/src). + * src/getgid.c: New (Copied from ../posix/src). + * src/getgroups.c: New (Copied from ../posix/src). + * src/getlogin.c: New (Copied from ../posix/src). + * src/getpgrp.c: New (Copied from ../posix/src). + * src/getpid.c: New (Copied from ../posix/src). + * src/getppid.c: New (Copied from ../posix/src). + * src/getuid.c: New (Copied from ../posix/src). + * src/setpgid.c: New (Copied from ../posix/src). + * src/setsid.c: New (Copied from ../posix/src). + * src/no_posix: Remove getpid and _getpid_r. + * Makefile.am: Reflect changes above. + 2003-08-14 Joel Sherrill * Makefile.am: Add fileio to list of interactive tests. - * src/sync.c: New file. + * src/sync.c: New (Copied from ../posix/src). New file. 2003-08-05 Till Strauman diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am index d420513fd9..529076079d 100644 --- a/cpukit/libcsupport/Makefile.am +++ b/cpukit/libcsupport/Makefile.am @@ -123,6 +123,10 @@ DIRECTORY_SCAN_C_FILES = src/opendir.c src/closedir.c src/readdir.c \ src/readdir_r.c src/rewinddir.c src/scandir.c src/seekdir.c \ src/telldir.c src/getcwd.c +ID_C_FILES = src/getegid.c src/geteuid.c src/getgid.c src/getgroups.c \ + src/getlogin.c src/getpgrp.c \ + src/getpid.c src/getppid.c src/getuid.c src/setpgid.c src/setsid.c + MALLOC_C_FILES = src/malloc.c src/mallocfreespace.c src/__brk.c src/__sbrk.c PASSWORD_GROUP_C_FILES = src/getpwent.c @@ -148,7 +152,7 @@ UNIX_C_FILES = $(UNIX_LIBC_C_FILES) EMBEDDED_C_FILES = $(LIBC_GLUE_C_FILES) $(PASSWORD_GROUP_C_FILES) \ $(TERMINAL_IDENTIFICATION_C_FILES) $(SYSTEM_CALL_C_FILES) \ - $(DIRECTORY_SCAN_C_FILES) + $(DIRECTORY_SCAN_C_FILES) $(ID_C_FILES) if UNIX C_FILES = $(COMMON_C_FILES) $(UNIX_C_FILES) diff --git a/cpukit/libcsupport/src/getegid.c b/cpukit/libcsupport/src/getegid.c new file mode 100644 index 0000000000..09bb75aeef --- /dev/null +++ b/cpukit/libcsupport/src/getegid.c @@ -0,0 +1,33 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include +#include +#include +#include + +/* + * MACRO in userenv.h +gid_t _POSIX_types_Egid = 0; +*/ + +/*PAGE + * + * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, + * P1003.1b-1993, p. 84 + */ + +gid_t getegid( void ) +{ + return _POSIX_types_Egid; +} + diff --git a/cpukit/libcsupport/src/geteuid.c b/cpukit/libcsupport/src/geteuid.c new file mode 100644 index 0000000000..9374999683 --- /dev/null +++ b/cpukit/libcsupport/src/geteuid.c @@ -0,0 +1,33 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include +#include +#include + +#include + +/* + * MACRO in userenv.h +uid_t _POSIX_types_Euid = 0; +*/ + +/*PAGE + * + * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, + * P1003.1b-1993, p. 84 + */ + +uid_t geteuid( void ) +{ + return _POSIX_types_Euid; +} diff --git a/cpukit/libcsupport/src/getgid.c b/cpukit/libcsupport/src/getgid.c new file mode 100644 index 0000000000..f104a6a039 --- /dev/null +++ b/cpukit/libcsupport/src/getgid.c @@ -0,0 +1,47 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include +#include +#include + +#include + +/* + * MACRO in userenv.h + * +gid_t _POSIX_types_Gid = 0; +*/ + +/*PAGE + * + * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, + * P1003.1b-1993, p. 84 + */ + +gid_t getgid( void ) +{ + return _POSIX_types_Gid; +} + +/*PAGE + * + * 4.2.2 Set User and Group IDs, P1003.1b-1993, p. 84 + */ + +int setgid( + gid_t gid +) +{ + _POSIX_types_Gid = gid; + return 0; +} diff --git a/cpukit/libcsupport/src/getgroups.c b/cpukit/libcsupport/src/getgroups.c new file mode 100644 index 0000000000..b46cc6163a --- /dev/null +++ b/cpukit/libcsupport/src/getgroups.c @@ -0,0 +1,30 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + +/*PAGE + * + * 4.2.3 Get Supplementary IDs, P1003.1b-1993, p. 86 + */ + +int getgroups( + int gidsetsize, + gid_t grouplist[] +) +{ + return 0; /* no supplemental group ids */ +} + diff --git a/cpukit/libcsupport/src/getlogin.c b/cpukit/libcsupport/src/getlogin.c new file mode 100644 index 0000000000..64ee0b6d02 --- /dev/null +++ b/cpukit/libcsupport/src/getlogin.c @@ -0,0 +1,64 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +/*PAGE + * + * 4.2.4 Get User Name, P1003.1b-1993, p. 87 + * + * NOTE: P1003.1c/D10, p. 49 adds getlogin_r(). + */ + +/* + * MACRO in userenv.h + * +static char _POSIX_types_Getlogin_buffer[ LOGIN_NAME_MAX ]; +*/ + +char *getlogin( void ) +{ + (void) getlogin_r( _POSIX_types_Getlogin_buffer, LOGIN_NAME_MAX ); + return _POSIX_types_Getlogin_buffer; +} + +/*PAGE + * + * 4.2.4 Get User Name, P1003.1b-1993, p. 87 + * + * NOTE: P1003.1c/D10, p. 49 adds getlogin_r(). + */ + +int getlogin_r( + char *name, + size_t namesize +) +{ + struct passwd *pw; + if ( namesize < LOGIN_NAME_MAX ) + return ERANGE; + + pw=getpwuid(getuid()); + if (!pw) { + strcpy(name,""); + } else { + strncpy(name,pw->pw_name,LOGIN_NAME_MAX); + }; + return 0; +} diff --git a/cpukit/libcsupport/src/getpgrp.c b/cpukit/libcsupport/src/getpgrp.c new file mode 100644 index 0000000000..0904d23883 --- /dev/null +++ b/cpukit/libcsupport/src/getpgrp.c @@ -0,0 +1,31 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + +/*PAGE + * + * 4.3.1 Get Process Group IDs, P1003.1b-1993, p. 89 + */ + +pid_t getpgrp( void ) +{ + /* + * This always succeeds and returns the process group id. For rtems, + * this will always be the local node; + */ + + return _Objects_Local_node; +} diff --git a/cpukit/libcsupport/src/getpid.c b/cpukit/libcsupport/src/getpid.c new file mode 100644 index 0000000000..5442b6468d --- /dev/null +++ b/cpukit/libcsupport/src/getpid.c @@ -0,0 +1,45 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + +/*PAGE + * + * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 + */ + +pid_t getpid( void ) +{ + return _Objects_Local_node; +} + +/* + * _getpid_r + * + * This is the Newlib dependent reentrant version of getpid(). + */ + +#if defined(RTEMS_NEWLIB) + +#include + +pid_t _getpid_r( + struct _reent *ptr +) +{ + return getpid(); +} +#endif + diff --git a/cpukit/libcsupport/src/getppid.c b/cpukit/libcsupport/src/getppid.c new file mode 100644 index 0000000000..f8a2f7bbf1 --- /dev/null +++ b/cpukit/libcsupport/src/getppid.c @@ -0,0 +1,29 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + +pid_t _POSIX_types_Ppid = 0; + +/*PAGE + * + * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 + */ + +pid_t getppid( void ) +{ + return _POSIX_types_Ppid; +} + diff --git a/cpukit/libcsupport/src/getuid.c b/cpukit/libcsupport/src/getuid.c new file mode 100644 index 0000000000..09cc25e7c1 --- /dev/null +++ b/cpukit/libcsupport/src/getuid.c @@ -0,0 +1,47 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include +#include +#include + +#include + +/* + * MACRO in userenv.h + * +uid_t _POSIX_types_Uid = 0; +*/ + +/*PAGE + * + * 4.2.1 Get Real User, Effective User, Ral Group, and Effective Group IDs, + * P1003.1b-1993, p. 84 + */ + +uid_t getuid( void ) +{ + return _POSIX_types_Uid; +} + +/*PAGE + * + * 4.2.2 Set User and Group IDs, P1003.1b-1993, p. 84 + */ + +int setuid( + uid_t uid +) +{ + _POSIX_types_Uid = uid; + return 0; +} diff --git a/cpukit/libcsupport/src/list b/cpukit/libcsupport/src/list new file mode 100644 index 0000000000..ef16047df5 --- /dev/null +++ b/cpukit/libcsupport/src/list @@ -0,0 +1,11 @@ +libcsupport/src/getegid.c +libcsupport/src/geteuid.c +libcsupport/src/getgid.c +libcsupport/src/getgroups.c +libcsupport/src/getlogin.c +libcsupport/src/getpgrp.c +libcsupport/src/getpid.c +libcsupport/src/getppid.c +libcsupport/src/getuid.c +libcsupport/src/setpgid.c +libcsupport/src/setsid.c diff --git a/cpukit/libcsupport/src/no_posix.c b/cpukit/libcsupport/src/no_posix.c index fee2e96de0..857f6b23a0 100644 --- a/cpukit/libcsupport/src/no_posix.c +++ b/cpukit/libcsupport/src/no_posix.c @@ -2,8 +2,6 @@ * Marginal implementations of some POSIX API routines * to be used when POSIX is disabled. * - * + getpid - * + _getpid_r * + kill * + _kill_r * + __kill @@ -28,25 +26,6 @@ * These are directly supported (and completely correct) in the posix api. */ -#if !defined(RTEMS_POSIX_API) -pid_t getpid(void) -{ - return 0; -} - -#if defined(RTEMS_NEWLIB) -#include - -pid_t _getpid_r( - struct _reent *ptr -) -{ - return getpid(); -} -#endif - -#endif - #if !defined(RTEMS_POSIX_API) int kill( pid_t pid, int sig ) { diff --git a/cpukit/libcsupport/src/setpgid.c b/cpukit/libcsupport/src/setpgid.c new file mode 100644 index 0000000000..26786cc552 --- /dev/null +++ b/cpukit/libcsupport/src/setpgid.c @@ -0,0 +1,29 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + +/*PAGE + * + * 4.3.3 Set Process Group ID for Job Control, P1003.1b-1993, p. 89 + */ + +int setpgid( + pid_t pid, + pid_t pgid +) +{ + rtems_set_errno_and_return_minus_one( ENOSYS ); +} diff --git a/cpukit/libcsupport/src/setsid.c b/cpukit/libcsupport/src/setsid.c new file mode 100644 index 0000000000..81a60a798d --- /dev/null +++ b/cpukit/libcsupport/src/setsid.c @@ -0,0 +1,28 @@ +/* + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include +#include +#include + +/*PAGE + * + * 4.3.2 Create Session and Set Process Group ID, P1003.1b-1993, p. 88 + */ + +pid_t setsid( void ) +{ + rtems_set_errno_and_return_minus_one( EPERM ); +} + + -- cgit v1.2.3