summaryrefslogtreecommitdiffstats
path: root/c/src/exec/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-01-08 12:04:22 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-01-08 12:04:22 +0000
commitdd2906e7e339c5968d979446796c5f99ad550d80 (patch)
treeb3cdfb92533f52b21968edd0128cfe5e02d20806 /c/src/exec/include
parent2002-01-07 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-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 'c/src/exec/include')
-rw-r--r--c/src/exec/include/rtems/fs.h59
-rw-r--r--c/src/exec/include/rtems/userenv.h79
2 files changed, 138 insertions, 0 deletions
diff --git a/c/src/exec/include/rtems/fs.h b/c/src/exec/include/rtems/fs.h
new file mode 100644
index 0000000000..1749e4d95e
--- /dev/null
+++ b/c/src/exec/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/c/src/exec/include/rtems/userenv.h b/c/src/exec/include/rtems/userenv.h
new file mode 100644
index 0000000000..d86abd7e3d
--- /dev/null
+++ b/c/src/exec/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 */