From dd2906e7e339c5968d979446796c5f99ad550d80 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 8 Jan 2002 12:04:22 +0000 Subject: 2002-01-07 Ralf Corsepius * 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. --- cpukit/ChangeLog | 7 ++++ cpukit/include/rtems/fs.h | 59 +++++++++++++++++++++++++++++++ cpukit/include/rtems/userenv.h | 79 ++++++++++++++++++++++++++++++++++++++++++ cpukit/wrapup/Makefile.am | 6 ++-- 4 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 cpukit/include/rtems/fs.h create mode 100644 cpukit/include/rtems/userenv.h (limited to 'cpukit') diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index edbfda6e79..f2f8f19b81 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,10 @@ +2002-01-07 Ralf Corsepius + + * 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. + 2002-02-05 Ralf Corsepius * Makefile.am: Readded reference to wrapup. diff --git a/cpukit/include/rtems/fs.h b/cpukit/include/rtems/fs.h new file mode 100644 index 0000000000..1749e4d95e --- /dev/null +++ b/cpukit/include/rtems/fs.h @@ -0,0 +1,59 @@ +/* + * Some basic filesystem types + * + * 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_fstypes_h +#define __rtems_fstypes_h + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * File descriptor Table Information + */ + +/* Forward declarations */ + +/* FIXME: shouldn't this better not be here? */ +typedef struct rtems_libio_tt rtems_libio_t; + +typedef struct rtems_filesystem_location_info_tt + rtems_filesystem_location_info_t; + +struct rtems_filesystem_mount_table_entry_tt; +typedef struct rtems_filesystem_mount_table_entry_tt + rtems_filesystem_mount_table_entry_t; + +typedef struct _rtems_filesystem_file_handlers_r + rtems_filesystem_file_handlers_r; +typedef struct _rtems_filesystem_operations_table + rtems_filesystem_operations_table; + +/* + * Structure used to determine a location/filesystem in the tree. + */ + +struct rtems_filesystem_location_info_tt +{ + void *node_access; + rtems_filesystem_file_handlers_r *handlers; + rtems_filesystem_operations_table *ops; + rtems_filesystem_mount_table_entry_t *mt_entry; +}; + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ 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 +#include + +#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 */ diff --git a/cpukit/wrapup/Makefile.am b/cpukit/wrapup/Makefile.am index 5d6e917049..4d37763c62 100644 --- a/cpukit/wrapup/Makefile.am +++ b/cpukit/wrapup/Makefile.am @@ -27,8 +27,6 @@ endif OBJS = $(CPU_OBJS) $(CORE_OBJS) $(RTEMS_OBJS) $(SAPI_OBJS) \ $(POSIX_OBJS) $(ITRON_OBJS) -SIZE_RTEMS = $(SHELL) $(PROJECT_TOPdir)/tools/cpu/generic/size_rtems - $(LIB): ${OBJS} $(make-library) @@ -37,6 +35,10 @@ TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib$(MULTISUBDIR)/$(LIBNAME)$(LIB_VARIANT $(PROJECT_RELEASE)/lib$(MULTISUBDIR)/$(LIBNAME)$(LIB_VARIANT).a: $(LIB) $(INSTALL_DATA) $< $@ +install-hook: $(LIB) + @$(mkinstalldirs) $(libdir) + $(INSTALL_DATA) $(LIB) $(libdir) + all-local: ${ARCH} $(TMPINSTALL_FILES) include $(top_srcdir)/../../../automake/local.am -- cgit v1.2.3