2023-01-25 21:53:19 +08:00
|
|
|
#ifndef __KSU_H_KSU_MANAGER
|
|
|
|
#define __KSU_H_KSU_MANAGER
|
|
|
|
|
|
|
|
#include "linux/cred.h"
|
|
|
|
#include "linux/types.h"
|
|
|
|
|
2023-05-22 10:50:04 +08:00
|
|
|
#define KSU_INVALID_UID -1
|
2023-01-25 21:53:19 +08:00
|
|
|
|
|
|
|
extern uid_t ksu_manager_uid; // DO NOT DIRECT USE
|
|
|
|
|
|
|
|
static inline bool ksu_is_manager_uid_valid()
|
|
|
|
{
|
2023-05-22 10:50:04 +08:00
|
|
|
return ksu_manager_uid != KSU_INVALID_UID;
|
2023-01-25 21:53:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline bool is_manager()
|
|
|
|
{
|
2023-06-16 20:53:15 +09:00
|
|
|
return unlikely(ksu_manager_uid == current_uid().val);
|
2023-01-25 21:53:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline uid_t ksu_get_manager_uid()
|
|
|
|
{
|
|
|
|
return ksu_manager_uid;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline void ksu_set_manager_uid(uid_t uid)
|
|
|
|
{
|
|
|
|
ksu_manager_uid = uid;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline void ksu_invalidate_manager_uid()
|
|
|
|
{
|
2023-05-22 10:50:04 +08:00
|
|
|
ksu_manager_uid = KSU_INVALID_UID;
|
2023-01-25 21:53:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|