haiku/headers/private/kernel/usergroup.h
Ingo Weinhold 24df65921b Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
  handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
  support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
  of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
  [set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 00:00:23 +00:00

45 lines
918 B
C++

/*
* Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_USERGROUP_H
#define _KERNEL_USERGROUP_H
#include <unistd.h>
#include <SupportDefs.h>
namespace BKernel {
struct Team;
}
using BKernel::Team;
#ifdef __cplusplus
extern "C" {
#endif
// kernel private functions
void inherit_parent_user_and_group(Team* team, Team* parent);
status_t update_set_id_user_and_group(Team* team, const char* file);
// syscalls
gid_t _user_getgid(bool effective);
uid_t _user_getuid(bool effective);
status_t _user_setregid(gid_t rgid, gid_t egid, bool setAllIfPrivileged);
status_t _user_setreuid(uid_t ruid, uid_t euid, bool setAllIfPrivileged);
ssize_t _user_getgroups(int groupCount, gid_t* groupList);
ssize_t _user_setgroups(int groupCount, const gid_t* groupList);
#ifdef __cplusplus
} // extern "C"
#endif
#endif // _KERNEL_USERGROUP_H