diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-01-08 12:04:22 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-01-08 12:04:22 +0000 |
commit | dd2906e7e339c5968d979446796c5f99ad550d80 (patch) | |
tree | b3cdfb92533f52b21968edd0128cfe5e02d20806 /cpukit/include/rtems/userenv.h | |
parent | 2002-01-07 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-dd2906e7e339c5968d979446796c5f99ad550d80.tar.bz2 |
2002-01-07 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Add install-hook.
Remove SIZE_RTEMS.
* include/rtems/fs.h: New, extracted from libio_.h.
* include/rtems/userenv.h: New. extracted from libio_.h.
Diffstat (limited to '')
-rw-r--r-- | cpukit/include/rtems/userenv.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/cpukit/include/rtems/userenv.h b/cpukit/include/rtems/userenv.h new file mode 100644 index 0000000000..d86abd7e3d --- /dev/null +++ b/cpukit/include/rtems/userenv.h @@ -0,0 +1,79 @@ +/* + * Libio Internal Information + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#ifndef __rtems_userenv_h +#define __rtems_userenv_h + +#include <rtems.h> +#include <rtems/fs.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * External structures + */ +#if !defined(LOGIN_NAME_MAX) +#if defined(__linux__) +#define LOGIN_NAME_MAX _POSIX_LOGIN_NAME_MAX +#else +#error "don't know how to set LOGIN_NAME_MAX" +#endif +#endif + +typedef struct { + rtems_id task_id; + rtems_filesystem_location_info_t current_directory; + rtems_filesystem_location_info_t root_directory; + /* Default mode for all files. */ + mode_t umask; + nlink_t link_counts; + /* _POSIX_types */ + uid_t uid; + gid_t gid; + uid_t euid; + gid_t egid; + char login_buffer[LOGIN_NAME_MAX]; + + pid_t pgrp; /* process group id */ +} rtems_user_env_t; + +extern rtems_user_env_t * rtems_current_user_env; +extern rtems_user_env_t rtems_global_user_env; + +#define rtems_filesystem_current (rtems_current_user_env->current_directory) +#define rtems_filesystem_root (rtems_current_user_env->root_directory) +#define rtems_filesystem_link_counts (rtems_current_user_env->link_counts) +#define rtems_filesystem_umask (rtems_current_user_env->umask) + +#define _POSIX_types_Uid (rtems_current_user_env->uid) +#define _POSIX_types_Gid (rtems_current_user_env->gid) +#define _POSIX_types_Euid (rtems_current_user_env->euid) +#define _POSIX_types_Egid (rtems_current_user_env->egid) +#define _POSIX_types_Getlogin_buffer (rtems_current_user_env->login_buffer) + + +/* + * Instantiate a private copy of the per user information for the calling task. + */ + +rtems_status_code rtems_libio_set_private_env(void); +rtems_status_code rtems_libio_share_private_env(rtems_id task_id) ; + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ |