mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 08:36:24 +08:00
sched/group and syscall/: Implement 'real' setuid, getuid, setgid, and getgid interfaces. These will be inheritance by all child task groups.
This commit is contained in:
@@ -441,6 +441,13 @@ struct task_group_s
|
||||
#endif
|
||||
uint8_t tg_flags; /* See GROUP_FLAG_* definitions */
|
||||
|
||||
/* User identity **************************************************************/
|
||||
|
||||
#ifdef CONFIG_SCHED_USER_IDENTITY
|
||||
uid_t tg_uid; /* User identity */
|
||||
gid_t tg_gid; /* User group identity */
|
||||
#endif
|
||||
|
||||
/* Group membership ***********************************************************/
|
||||
|
||||
uint8_t tg_nmembers; /* Number of members in the group */
|
||||
|
||||
+21
-8
@@ -82,20 +82,33 @@
|
||||
#define SYS_sched_yield (CONFIG_SYS_RESERVED + 12)
|
||||
#define SYS_set_errno (CONFIG_SYS_RESERVED + 13)
|
||||
#define SYS_uname (CONFIG_SYS_RESERVED + 14)
|
||||
#define __SYS_uid (CONFIG_SYS_RESERVED + 15)
|
||||
|
||||
/* User identity */
|
||||
|
||||
#ifdef CONFIG_SCHED_USER_IDENTITY
|
||||
# define SYS_setuid (__SYS_uid + 0)
|
||||
# define SYS_getuid (__SYS_uid + 1)
|
||||
# define SYS_setgid (__SYS_uid + 2)
|
||||
# define SYS_getgid (__SYS_uid + 3)
|
||||
# define __SYS_sem (__SYS_uid + 4)
|
||||
#else
|
||||
# define __SYS_sem __SYS_uid
|
||||
#endif
|
||||
|
||||
/* Semaphores */
|
||||
|
||||
#define SYS_sem_destroy (CONFIG_SYS_RESERVED + 15)
|
||||
#define SYS_sem_post (CONFIG_SYS_RESERVED + 16)
|
||||
#define SYS_sem_timedwait (CONFIG_SYS_RESERVED + 17)
|
||||
#define SYS_sem_trywait (CONFIG_SYS_RESERVED + 18)
|
||||
#define SYS_sem_wait (CONFIG_SYS_RESERVED + 19)
|
||||
#define SYS_sem_destroy (__SYS_sem + 0)
|
||||
#define SYS_sem_post (__SYS_sem + 1)
|
||||
#define SYS_sem_timedwait (__SYS_sem + 2)
|
||||
#define SYS_sem_trywait (__SYS_sem + 3)
|
||||
#define SYS_sem_wait (__SYS_sem + 4)
|
||||
|
||||
#ifdef CONFIG_PRIORITY_INHERITANCE
|
||||
# define SYS_sem_setprotocol (CONFIG_SYS_RESERVED + 20)
|
||||
# define __SYS_named_sem (CONFIG_SYS_RESERVED + 21)
|
||||
# define SYS_sem_setprotocol (__SYS_sem + 5)
|
||||
# define __SYS_named_sem (__SYS_sem + 6)
|
||||
#else
|
||||
# define __SYS_named_sem (CONFIG_SYS_RESERVED + 20)
|
||||
# define __SYS_named_sem (__SYS_sem + 5)
|
||||
#endif
|
||||
|
||||
/* Named semaphores */
|
||||
|
||||
@@ -371,7 +371,9 @@ long sysconf(int name);
|
||||
/* User and group identity management */
|
||||
|
||||
int setuid(uid_t uid);
|
||||
uid_t getuid(void);
|
||||
int setgid(gid_t gid);
|
||||
gid_t getgid(void);
|
||||
|
||||
#undef EXTERN
|
||||
#if defined(__cplusplus)
|
||||
|
||||
Reference in New Issue
Block a user