mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-23 19:10:30 +00:00
Make improvements
- Introduce portable sched_getcpu() api - Support GCC's __target_clones__ feature - Make fma() go faster on x86 in default mode - Remove some asan checks from core libraries - WinMain() now ensures $HOME and $USER are defined
This commit is contained in:
parent
d5225a693b
commit
2ab9e9f7fd
192 changed files with 2809 additions and 932 deletions
46
libc/x/x.h
46
libc/x/x.h
|
@ -40,39 +40,41 @@ COSMOPOLITAN_C_START_
|
|||
int xwrite(int, const void *, uint64_t);
|
||||
void xdie(void) wontreturn;
|
||||
char *xdtoa(double)
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xdtoaf(float)
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xdtoal(long double)
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xmalloc(size_t) attributeallocsize((1))
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xrealloc(void *, size_t)
|
||||
attributeallocsize((2)) dontthrow nocallback __wur;
|
||||
attributeallocsize((2)) dontthrow dontcallback __wur;
|
||||
void *xcalloc(size_t, size_t) attributeallocsize((1, 2))
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xvalloc(size_t) attributeallocsize((1)) returnsaligned((65536))
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xmemalign(size_t, size_t) attributeallocalign((1)) attributeallocsize((2))
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
void *xmemalignzero(size_t, size_t) attributeallocalign((1)) attributeallocsize(
|
||||
(2)) returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xmemalignzero(size_t, size_t) attributeallocalign((1))
|
||||
attributeallocsize((2))
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xstrdup(const char *) paramsnonnull()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xstrndup(const char *, size_t) paramsnonnull()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xstrcat(const char *, ...) paramsnonnull((1)) nullterminated()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
#define xstrcat(...) (xstrcat)(__VA_ARGS__, NULL)
|
||||
char *xstrmul(const char *, size_t) paramsnonnull((1))
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xinet_ntop(int, const void *) paramsnonnull()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xunbinga(size_t, const char16_t *)
|
||||
attributeallocalign((1)) returnspointerwithnoaliases dontthrow
|
||||
nocallback __wur returnsnonnull dontthrow nocallback __wur returnsnonnull;
|
||||
void *xunbing(const char16_t *) returnspointerwithnoaliases dontthrow
|
||||
nocallback __wur returnsnonnull dontthrow nocallback __wur returnsnonnull;
|
||||
attributeallocalign((1)) returnspointerwithnoaliases dontthrow dontcallback
|
||||
__wur returnsnonnull dontthrow dontcallback __wur returnsnonnull;
|
||||
void *xunbing(const char16_t *)
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur
|
||||
returnsnonnull dontthrow dontcallback __wur returnsnonnull;
|
||||
char16_t *utf8to16(const char *, size_t, size_t *) __wur;
|
||||
char *utf16to8(const char16_t *, size_t, size_t *) __wur;
|
||||
wchar_t *utf8to32(const char *, size_t, size_t *) __wur;
|
||||
|
@ -84,11 +86,11 @@ char *xstripexts(const char *) __wur;
|
|||
void *xload(_Atomic(void *) *, const void *, size_t, size_t);
|
||||
int rmrf(const char *);
|
||||
char *xbasename(const char *) paramsnonnull()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xdirname(const char *) paramsnonnull()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
char *xjoinpaths(const char *, const char *) paramsnonnull()
|
||||
returnspointerwithnoaliases dontthrow nocallback __wur returnsnonnull;
|
||||
returnspointerwithnoaliases dontthrow dontcallback __wur returnsnonnull;
|
||||
void xfixpath(void);
|
||||
void *xslurp(const char *, size_t *)
|
||||
paramsnonnull((1)) returnspointerwithnoaliases returnsaligned((4096)) __wur;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue