mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-04 18:28:30 +00:00
Refactor pledge() to be more configurable
The earlier iterations did too much guesswork when it came to things like stderr logging and syscall origin verification. This change will make things more conformant to existing practices. The __pledge_mode extension now can be configured in a better way. There's also a new `-q` flag added to pledge.com, e.g. o//tool/build/pledge.com -qv. ls Is a good way to disable warnings about `tty` access attempts.
This commit is contained in:
parent
6b8b58fdf5
commit
625aa365f1
36 changed files with 203 additions and 168 deletions
|
@ -1,15 +1,16 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_CALLS_PLEDGE_H_
|
||||
#define COSMOPOLITAN_LIBC_CALLS_PLEDGE_H_
|
||||
|
||||
#define PLEDGE_PENALTY_KILL_THREAD 0x0000
|
||||
#define PLEDGE_PENALTY_KILL_PROCESS 0x0001
|
||||
#define PLEDGE_PENALTY_RETURN_EPERM 0x0002
|
||||
#define PLEDGE_PENALTY_MASK 0x000f
|
||||
#define PLEDGE_STDERR_LOGGING 0x0010
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
enum PledgeMode {
|
||||
kPledgeModeKillThread,
|
||||
kPledgeModeKillProcess,
|
||||
kPledgeModeErrno,
|
||||
};
|
||||
|
||||
extern enum PledgeMode __pledge_mode;
|
||||
extern int __pledge_mode;
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue