mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-01 08:48:29 +00:00
Get Cosmopolitan into releasable state
A new rollup tool now exists for flattening out the headers in a way that works better for our purposes than cpp. A lot of the API clutter has been removed. APIs that aren't a sure thing in terms of general recommendation are now marked internal. There's now a smoke test for the amalgamation archive and gigantic header file. So we can now guarantee you can use this project on the easiest difficulty setting without the gigantic repository. A website is being created, which is currently a work in progress: https://justine.storage.googleapis.com/cosmopolitan/index.html
This commit is contained in:
parent
dba7552c1e
commit
ea0b5d9d1c
775 changed files with 6864 additions and 3963 deletions
|
@ -1,52 +1,14 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_CALLS_SIGBITS_H_
|
||||
#define COSMOPOLITAN_LIBC_CALLS_SIGBITS_H_
|
||||
#include "libc/bits/bits.h"
|
||||
#include "libc/bits/progn.h"
|
||||
#include "libc/str/str.h"
|
||||
#include "libc/calls/struct/sigset.h"
|
||||
#include "libc/sysv/errfuns.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
struct sigset;
|
||||
|
||||
int sigaddset(struct sigset *, int) paramsnonnull();
|
||||
int sigdelset(struct sigset *, int) paramsnonnull();
|
||||
int sigemptyset(struct sigset *) paramsnonnull();
|
||||
int sigfillset(struct sigset *) paramsnonnull();
|
||||
int sigismember(const struct sigset *, int) paramsnonnull() nosideeffect;
|
||||
|
||||
#define sigemptyset(SET) \
|
||||
({ \
|
||||
memset((SET), 0, sizeof(struct sigset)); \
|
||||
0; \
|
||||
})
|
||||
|
||||
#define sigfillset(SET) \
|
||||
({ \
|
||||
memset((SET), -1, sizeof(struct sigset)); \
|
||||
0; \
|
||||
})
|
||||
|
||||
#define sigaddset(SET, SIG) \
|
||||
({ \
|
||||
int Sig = (SIG); \
|
||||
__IsValidSignal(Sig) ? PROGN(bts((SET)->sig, Sig - 1), 0) : einval(); \
|
||||
})
|
||||
|
||||
#define sigdelset(SET, SIG) \
|
||||
({ \
|
||||
int Sig = (SIG); \
|
||||
__IsValidSignal(Sig) ? PROGN(btr((SET)->sig, Sig - 1), 0) : einval(); \
|
||||
})
|
||||
|
||||
#define sigismember(SET, SIG) \
|
||||
({ \
|
||||
int Sig = (SIG); \
|
||||
__IsValidSignal(Sig) ? bt((SET)->sig, Sig - 1) : einval(); \
|
||||
})
|
||||
|
||||
#define __IsValidSignal(SIG) (1 <= (SIG) && (SIG) <= NSIG)
|
||||
int sigaddset(sigset_t *, int) paramsnonnull();
|
||||
int sigdelset(sigset_t *, int) paramsnonnull();
|
||||
int sigemptyset(sigset_t *) paramsnonnull();
|
||||
int sigfillset(sigset_t *) paramsnonnull();
|
||||
int sigismember(const sigset_t *, int) paramsnonnull() nosideeffect;
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue