haiku/headers/private/libroot/libroot_private.h
Ingo Weinhold f8cb30712e * Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
  constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
  the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
  should be on the image (executables: 755, others: 644). Otherwise only
  root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
  HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
  root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
  for adding additional users and groups (by default only root user and
  group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
  features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
  a wrong variable name before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-02 14:02:52 +00:00

68 lines
1.8 KiB
C

/*
* Copyright 2004-2007, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
#ifndef LIBROOT_PRIVATE_H
#define LIBROOT_PRIVATE_H
#include <SupportDefs.h>
#include <image.h>
#define MAX_PASSWD_NAME_LEN (32)
#define MAX_PASSWD_PASSWORD_LEN (32)
#define MAX_PASSWD_REAL_NAME_LEN (128)
#define MAX_PASSWD_HOME_DIR_LEN (B_PATH_NAME_LENGTH)
#define MAX_PASSWD_SHELL_LEN (B_PATH_NAME_LENGTH)
#define MAX_PASSWD_BUFFER_SIZE ( \
MAX_PASSWD_NAME_LEN \
+ MAX_PASSWD_PASSWORD_LEN \
+ MAX_PASSWD_REAL_NAME_LEN \
+ MAX_PASSWD_HOME_DIR_LEN \
+ MAX_PASSWD_SHELL_LEN)
#define MAX_GROUP_NAME_LEN (32)
#define MAX_GROUP_PASSWORD_LEN (32)
#define MAX_GROUP_MEMBER_COUNT (32)
#define MAX_GROUP_BUFFER_SIZE ( \
MAX_GROUP_NAME_LEN \
+ MAX_GROUP_PASSWORD_LEN \
+ ((MAX_GROUP_MEMBER_COUNT + 1) * sizeof(char*)))
// MAX_GROUP_NAME_LEN and MAX_GROUP_PASSWORD_LEN are char* aligned
struct user_space_program_args;
struct real_time_data;
#ifdef __cplusplus
extern "C" {
#endif
extern char _single_threaded;
/* This determines if a process runs single threaded or not */
status_t __parse_invoke_line(char *invoker, char ***_newArgs,
char * const **_oldArgs, int32 *_argCount, const char *arg0);
status_t __get_next_image_dependency(image_id id, uint32 *cookie,
const char **_name);
status_t __test_executable(const char *path, char *invoker);
void __init_env(const struct user_space_program_args *args);
void __init_heap(void);
void __init_time(void);
void __arch_init_time(struct real_time_data *data, bool setDefaults);
bigtime_t __arch_get_system_time_offset(struct real_time_data *data);
void __init_pwd_backend(void);
void __reinit_pwd_backend_after_fork(void);
#ifdef __cplusplus
}
#endif
#endif /* LIBROOT_PRIVATE_H */