summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog7
-rw-r--r--cpukit/include/rtems/fs.h59
-rw-r--r--cpukit/include/rtems/userenv.h79
-rw-r--r--cpukit/wrapup/Makefile.am6
4 files changed, 149 insertions, 2 deletions
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 <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.
+
2002-02-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* 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 <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 */
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