XenevaOS
Loading...
Searching...
No Matches
capability.h
Go to the documentation of this file.
1#ifndef CAPABILITY_H
2#define CAPABILITY_H
3
4
5
6#include <aurora.h>
7#include <Cred/user.h>
8#include <stdint.h>
9//#include <stdbool.h>
10
11
12
13#define CAP_READ (1 << 0)
14#define CAP_WRITE (1 << 1)
15
16#define CAP_EXECUTE (1 << 2)
17#define CAP_SEEK (1 << 3)
18#define CAP_IOCTL (1 << 4)
19
20#define CAP_DUP (1 << 5)
21
22#define CAP_TRANSFER (1 << 6)
23
24#define CAP_RIGHTS_NONE 0
25
26#define CAP_FILE_RIGHTS_MASK (CAP_READ | CAP_WRITE | CAP_SEEK | CAP_IOCTL | CAP_DUP | CAP_TRANSFER)
27
28/* Return codes */
29#define CAP_OK 0
30#define CAP_ERR_INVALID -1
31#define CAP_ERR_PERM -2
32
33#define CAP_OBJ_FILE 1
34
35#define CAP_FLAG_NONE 0
36
37#define CAP_FLAG_NO_INHERIT (1 << 0)
38
39
40
41/* Capability entry */
42typedef struct _au_capability_ {
43
44 void* object;
45
46
48
49
51
52
54
55
57
58
59 unsigned char valid;
61
62extern int BordoisilaCapCreate(void* proc, int fd, void* object, uint8_t type, CapRights rights);
63extern AuCapability* BordoisilaCapLookup(void* proc, int fd);
64extern bool BordoisilaCapCheckRights(void* proc, int fd, CapRights required);
65extern int BordoisilaCapDup(void* proc, int oldfd, int newfd);
66extern int BordoisilaCapRestrict(void* proc, int fd, CapRights new_rights);
67extern void BordoisilaCapDestroy(void* proc, int fd);
68extern void BordoisilaCapCleanupProcess(void* proc);
69extern void BordoisilaCapInheritTable(void* parent, void* child);
70
71#endif
uint32_t CapRights
Definition aurora.h:58
unsigned char uint8_t
Definition acefiex.h:161
unsigned short int uint16_t
Definition acefiex.h:162
void BordoisilaCapCleanupProcess(void *proc)
Definition capability.c:172
void BordoisilaCapInheritTable(void *parent, void *child)
Definition capability.c:189
struct _au_capability_ AuCapability
void BordoisilaCapDestroy(void *proc, int fd)
Definition capability.c:157
AuCapability * BordoisilaCapLookup(void *proc, int fd)
Definition capability.c:87
bool BordoisilaCapCheckRights(void *proc, int fd, CapRights required)
Definition capability.c:97
int BordoisilaCapDup(void *proc, int oldfd, int newfd)
Definition capability.c:112
int BordoisilaCapRestrict(void *proc, int fd, CapRights new_rights)
Definition capability.c:144
int BordoisilaCapCreate(void *proc, int fd, void *object, uint8_t type, CapRights rights)
Definition capability.c:63
Definition capability.h:42
unsigned char valid
Definition capability.h:59
UID_NUM owner
Definition capability.h:53
CapRights rights
Definition capability.h:50
uint8_t object_type
Definition capability.h:47
uint16_t flags
Definition capability.h:56
void * object
Definition capability.h:44
#define UID_NUM
Definition user.h:35