Reduce header complexity

- Remove most __ASSEMBLER__ __LINKER__ ifdefs
- Rename libc/intrin/bits.h to libc/serialize.h
- Block pthread cancelation in fchmodat() polyfill
- Remove `clang-format off` statements in third_party
This commit is contained in:
Justine Tunney 2023-11-28 14:24:28 -08:00
parent 96f979dfc5
commit fa20edc44d
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
3057 changed files with 410 additions and 4398 deletions

View file

@ -10,7 +10,6 @@
#define BLAKE2B256_Final __BLAKE2B256_Final
#define BLAKE2B256 __BLAKE2B256
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
struct Blake2b {
@ -31,5 +30,4 @@ int BLAKE2B256_Final(struct Blake2b *, uint8_t[BLAKE2B256_DIGEST_LENGTH]);
int BLAKE2B256(const void *, size_t, uint8_t[BLAKE2B256_DIGEST_LENGTH]);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_BLAKE2_H_ */

View file

@ -24,7 +24,6 @@
*
* x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1
* 0b00011110110111000110111101000001
* _bitreverse32(0x1edc6f41)
*
* @param init is the initial hash value
* @param data points to the data

View file

@ -18,7 +18,6 @@
*/
#include "libc/assert.h"
#include "libc/dce.h"
#include "libc/intrin/bits.h"
#include "libc/nexgen32e/cachesize.h"
#include "libc/nexgen32e/cpuid4.internal.h"
#ifdef __x86_64__

View file

@ -22,7 +22,7 @@
* Returns comment of zip central directory.
*/
const void *GetZipCdirComment(const uint8_t *eocd) {
if (READ32LE(eocd) == kZipCdir64HdrMagic && ZIP_CDIR64_COMMENTSIZE(eocd)) {
if (ZIP_READ32(eocd) == kZipCdir64HdrMagic && ZIP_CDIR64_COMMENTSIZE(eocd)) {
return ZIP_CDIR64_COMMENT(eocd);
} else {
return ZIP_CDIR_COMMENT(eocd);

View file

@ -22,7 +22,7 @@
* Returns comment of zip central directory.
*/
uint64_t GetZipCdirCommentSize(const uint8_t *eocd) {
if (READ32LE(eocd) == kZipCdir64HdrMagic && ZIP_CDIR64_COMMENTSIZE(eocd)) {
if (ZIP_READ32(eocd) == kZipCdir64HdrMagic && ZIP_CDIR64_COMMENTSIZE(eocd)) {
return ZIP_CDIR64_COMMENTSIZE(eocd);
} else {
return ZIP_CDIR_COMMENTSIZE(eocd);

View file

@ -22,7 +22,7 @@
* Returns offset of zip central directory.
*/
uint64_t GetZipCdirOffset(const uint8_t *eocd) {
if (READ32LE(eocd) == kZipCdir64HdrMagic) {
if (ZIP_READ32(eocd) == kZipCdir64HdrMagic) {
return ZIP_CDIR64_OFFSET(eocd);
} else {
return ZIP_CDIR_OFFSET(eocd);

View file

@ -22,7 +22,7 @@
* Returns number of records in zip central directory.
*/
uint64_t GetZipCdirRecords(const uint8_t *eocd) {
if (READ32LE(eocd) == kZipCdir64HdrMagic) {
if (ZIP_READ32(eocd) == kZipCdir64HdrMagic) {
return ZIP_CDIR64_RECORDS(eocd);
} else {
return ZIP_CDIR_RECORDS(eocd);

View file

@ -22,7 +22,7 @@
* Returns size of zip central directory.
*/
uint64_t GetZipCdirSize(const uint8_t *eocd) {
if (READ32LE(eocd) == kZipCdir64HdrMagic) {
if (ZIP_READ32(eocd) == kZipCdir64HdrMagic) {
return ZIP_CDIR64_SIZE(eocd);
} else {
return ZIP_CDIR_SIZE(eocd);

View file

@ -30,7 +30,7 @@ int64_t GetZipCfileCompressedSize(const uint8_t *z) {
for (; p + ZIP_EXTRA_SIZE(p) <= pe; p += ZIP_EXTRA_SIZE(p)) {
if (ZIP_EXTRA_HEADERID(p) == kZipExtraZip64) {
if (8 <= ZIP_EXTRA_CONTENTSIZE(p)) {
return READ64LE(ZIP_EXTRA_CONTENT(p));
return ZIP_READ64(ZIP_EXTRA_CONTENT(p));
}
}
}

View file

@ -37,7 +37,7 @@ int64_t GetZipCfileOffset(const uint8_t *z) {
offset += 8;
}
if (offset + 8 <= ZIP_EXTRA_CONTENTSIZE(p)) {
return READ64LE(ZIP_EXTRA_CONTENT(p) + offset);
return ZIP_READ64(ZIP_EXTRA_CONTENT(p) + offset);
}
}
}

View file

@ -43,18 +43,18 @@ void GetZipCfileTimestamps(const uint8_t *cf, struct timespec *mtim,
p += ZIP_EXTRA_SIZE(p)) {
if (ZIP_EXTRA_HEADERID(p) == kZipExtraNtfs &&
ZIP_EXTRA_CONTENTSIZE(p) >= 4 + 4 + 8 &&
READ16LE(ZIP_EXTRA_CONTENT(p) + 4) == 1 &&
READ16LE(ZIP_EXTRA_CONTENT(p) + 6) >= 8) {
ZIP_READ16(ZIP_EXTRA_CONTENT(p) + 4) == 1 &&
ZIP_READ16(ZIP_EXTRA_CONTENT(p) + 6) >= 8) {
if (mtim) {
*mtim = WindowsTimeToTimeSpec(READ64LE(ZIP_EXTRA_CONTENT(p) + 8));
*mtim = WindowsTimeToTimeSpec(ZIP_READ64(ZIP_EXTRA_CONTENT(p) + 8));
}
if (atim && ZIP_EXTRA_CONTENTSIZE(p) >= 4 + 4 + 8 * 2 &&
READ16LE(ZIP_EXTRA_CONTENT(p) + 6) >= 16) {
*atim = WindowsTimeToTimeSpec(READ64LE(ZIP_EXTRA_CONTENT(p) + 8 * 2));
ZIP_READ16(ZIP_EXTRA_CONTENT(p) + 6) >= 16) {
*atim = WindowsTimeToTimeSpec(ZIP_READ64(ZIP_EXTRA_CONTENT(p) + 8 * 2));
}
if (ctim && ZIP_EXTRA_CONTENTSIZE(p) >= 4 + 4 + 8 * 3 &&
READ16LE(ZIP_EXTRA_CONTENT(p) + 6) >= 24) {
*ctim = WindowsTimeToTimeSpec(READ64LE(ZIP_EXTRA_CONTENT(p) + 8 * 3));
ZIP_READ16(ZIP_EXTRA_CONTENT(p) + 6) >= 24) {
*ctim = WindowsTimeToTimeSpec(ZIP_READ64(ZIP_EXTRA_CONTENT(p) + 8 * 3));
}
return;
}
@ -66,7 +66,7 @@ void GetZipCfileTimestamps(const uint8_t *cf, struct timespec *mtim,
ZIP_EXTRA_CONTENTSIZE(p) == 1 + 4 * pop(*ZIP_EXTRA_CONTENT(p) & 7)) {
if (mtim) {
if (*ZIP_EXTRA_CONTENT(p) & 1) {
mtim->tv_sec = (int32_t)READ32LE(ZIP_EXTRA_CONTENT(p) + 1);
mtim->tv_sec = (int32_t)ZIP_READ32(ZIP_EXTRA_CONTENT(p) + 1);
} else {
mtim->tv_sec = DosDateTimeToUnix(ZIP_CFILE_LASTMODIFIEDDATE(cf),
ZIP_CFILE_LASTMODIFIEDTIME(cf)) -
@ -74,12 +74,12 @@ void GetZipCfileTimestamps(const uint8_t *cf, struct timespec *mtim,
}
}
if (atim && (*ZIP_EXTRA_CONTENT(p) & 2)) {
atim->tv_sec = (int32_t)READ32LE(ZIP_EXTRA_CONTENT(p) + 1 +
4 * (*ZIP_EXTRA_CONTENT(p) & 1));
atim->tv_sec = (int32_t)ZIP_READ32(ZIP_EXTRA_CONTENT(p) + 1 +
4 * (*ZIP_EXTRA_CONTENT(p) & 1));
}
if (ctim && (*ZIP_EXTRA_CONTENT(p) & 4)) {
ctim->tv_sec = (int32_t)READ32LE(ZIP_EXTRA_CONTENT(p) + 1 +
4 * pop(*ZIP_EXTRA_CONTENT(p) & 3));
ctim->tv_sec = (int32_t)ZIP_READ32(ZIP_EXTRA_CONTENT(p) + 1 +
4 * pop(*ZIP_EXTRA_CONTENT(p) & 3));
}
return;
}
@ -88,8 +88,8 @@ void GetZipCfileTimestamps(const uint8_t *cf, struct timespec *mtim,
p += ZIP_EXTRA_SIZE(p)) {
if (ZIP_EXTRA_HEADERID(p) == kZipExtraUnix &&
ZIP_EXTRA_CONTENTSIZE(p) >= 4 + 4) {
if (atim) atim->tv_sec = (int32_t)READ32LE(ZIP_EXTRA_CONTENT(p) + 0);
if (mtim) mtim->tv_sec = (int32_t)READ32LE(ZIP_EXTRA_CONTENT(p) + 4);
if (atim) atim->tv_sec = (int32_t)ZIP_READ32(ZIP_EXTRA_CONTENT(p) + 0);
if (mtim) mtim->tv_sec = (int32_t)ZIP_READ32(ZIP_EXTRA_CONTENT(p) + 4);
return;
}
}

View file

@ -34,7 +34,7 @@ int64_t GetZipCfileUncompressedSize(const uint8_t *z) {
offset += 8;
}
if (offset + 8 <= ZIP_EXTRA_CONTENTSIZE(p)) {
return READ64LE(ZIP_EXTRA_CONTENT(p) + offset);
return ZIP_READ64(ZIP_EXTRA_CONTENT(p) + offset);
}
}
}

View file

@ -16,7 +16,6 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/zip.internal.h"
typedef char v16qi __attribute__((__vector_size__(16)));
@ -48,8 +47,9 @@ void *GetZipEocd(const void *f, size_t n, int *e) {
do {
#if defined(__x86_64__) && defined(__GNUC__) && !defined(__llvm__) && \
!defined(__chibicc__)
v8hi pk = {READ16LE("PK"), READ16LE("PK"), READ16LE("PK"), READ16LE("PK"),
READ16LE("PK"), READ16LE("PK"), READ16LE("PK"), READ16LE("PK")};
v8hi pk = {ZIP_READ16("PK"), ZIP_READ16("PK"), ZIP_READ16("PK"),
ZIP_READ16("PK"), ZIP_READ16("PK"), ZIP_READ16("PK"),
ZIP_READ16("PK"), ZIP_READ16("PK")};
asm("" : "+x"(pk));
if (i >= 14) {
v2di x = *(const v2di *)(p + i - 14);
@ -62,9 +62,9 @@ void *GetZipEocd(const void *f, size_t n, int *e) {
}
}
#endif
while (magic = READ32LE(p + i), magic != kZipCdir64LocatorMagic &&
magic != kZipCdirHdrMagic &&
i + 0x10000 + 0x1000 >= n && i > 0) {
while (magic = ZIP_READ32(p + i), magic != kZipCdir64LocatorMagic &&
magic != kZipCdirHdrMagic &&
i + 0x10000 + 0x1000 >= n && i > 0) {
--i;
}
if (magic == kZipCdir64LocatorMagic && i + kZipCdir64LocatorSize <= n &&
@ -74,7 +74,7 @@ void *GetZipEocd(const void *f, size_t n, int *e) {
(err = IsZipEocd32(p, n, i)) == kZipOk) {
j = i;
do {
if (READ32LE(p + j) == kZipCdir64LocatorMagic &&
if (ZIP_READ32(p + j) == kZipCdir64LocatorMagic &&
j + kZipCdir64LocatorSize <= n &&
IsZipEocd64(p, n, ZIP_LOCATE64_OFFSET(p + j)) == kZipOk) {
return (void *)(p + ZIP_LOCATE64_OFFSET(p + j));

View file

@ -30,7 +30,7 @@ int64_t GetZipLfileCompressedSize(const uint8_t *z) {
for (; p + ZIP_EXTRA_SIZE(p) <= pe; p += ZIP_EXTRA_SIZE(p)) {
if (ZIP_EXTRA_HEADERID(p) == kZipExtraZip64) {
if (8 <= ZIP_EXTRA_CONTENTSIZE(p)) {
return READ64LE(ZIP_EXTRA_CONTENT(p));
return ZIP_READ64(ZIP_EXTRA_CONTENT(p));
}
}
}

View file

@ -34,7 +34,7 @@ int64_t GetZipLfileUncompressedSize(const uint8_t *z) {
offset += 8;
}
if (offset + 8 <= ZIP_EXTRA_CONTENTSIZE(p)) {
return READ64LE(ZIP_EXTRA_CONTENT(p) + offset);
return ZIP_READ64(ZIP_EXTRA_CONTENT(p) + offset);
}
}
}

View file

@ -16,7 +16,7 @@
limitations under the License.
*/
#include "libc/str/highwayhash64.h"
#include "libc/intrin/bits.h"
#include "libc/serialize.h"
asm(".ident\t\"\\n\\n\
HighwayHash (Apache 2.0)\\n\

View file

@ -1,10 +1,8 @@
#ifndef COSMOPOLITAN_LIBC_STR_HIGHWAYHASH64_H_
#define COSMOPOLITAN_LIBC_STR_HIGHWAYHASH64_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
uint64_t HighwayHash64(const void *, size_t, const uint64_t[4]);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_HIGHWAYHASH64_H_ */

View file

@ -27,7 +27,7 @@ int IsZipEocd32(const uint8_t *p, size_t n, size_t i) {
if (i > n || n - i < kZipCdirHdrMinSize) {
return kZipErrorEocdOffsetOverflow;
}
if (READ32LE(p + i) != kZipCdirHdrMagic) {
if (ZIP_READ32(p + i) != kZipCdirHdrMagic) {
return kZipErrorEocdMagicNotFound;
}
if (i + ZIP_CDIR_HDRSIZE(p + i) > n) {

View file

@ -28,7 +28,7 @@ int IsZipEocd64(const uint8_t *p, size_t n, size_t i) {
if (i > n || i + kZipCdir64HdrMinSize > n) {
return kZipErrorEocdOffsetOverflow;
}
if (READ32LE(p + i) != kZipCdir64HdrMagic) {
if (ZIP_READ32(p + i) != kZipCdir64HdrMagic) {
return kZipErrorEocdMagicNotFound;
}
if (ckd_add(&loc, i, ZIP_CDIR64_HDRSIZE(p + i)) || //

View file

@ -16,7 +16,6 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/macros.internal.h"
#include "libc/nexgen32e/x86info.h"

View file

@ -1,6 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_STR_LANGINFO_H_
#define COSMOPOLITAN_LIBC_STR_LANGINFO_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
#define ABDAY_1 0x20000
@ -82,5 +81,4 @@ COSMOPOLITAN_C_START_
char *nl_langinfo(int);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_LANGINFO_H_ */

View file

@ -19,7 +19,6 @@
#define LC_ALL_MASK 0x1fbf
#define LOCALE_NAME_MAX 23
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
#define LC_GLOBAL_LOCALE ((locale_t)-1)
@ -85,5 +84,4 @@ int strncasecmp_l(const char *, const char *, size_t, locale_t);
ssize_t strfmon_l(char *, size_t, locale_t, const char *, ...);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_LOCALE_H_ */

View file

@ -16,7 +16,7 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/serialize.h"
#include "libc/intrin/pushpop.internal.h"
#include "libc/intrin/repmovsb.h"
#include "libc/nexgen32e/kompressor.h"

View file

@ -16,7 +16,6 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/intrin/pushpop.internal.h"
#include "libc/nexgen32e/kompressor.h"
#include "libc/str/str.h"

View file

@ -1,6 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_STR_MB_INTERNAL_H_
#define COSMOPOLITAN_LIBC_STR_MB_INTERNAL_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
#define SA 0xc2u
@ -15,5 +14,4 @@ COSMOPOLITAN_C_START_
extern const uint32_t kMbBittab[51];
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_MB_INTERNAL_H_ */

View file

@ -16,7 +16,7 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/serialize.h"
#include "libc/str/str.h"
#include "libc/str/tab.internal.h"

View file

@ -16,7 +16,6 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/str/str.h"
/**

View file

@ -4,7 +4,6 @@
#define NL_SETD 1
#define NL_CAT_LOCALE 1
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
typedef int nl_item;
@ -15,5 +14,4 @@ char *catgets(nl_catd, int, int, const char *);
int catclose(nl_catd);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_NLTYPES_H_ */

View file

@ -2,7 +2,6 @@
#define COSMOPOLITAN_LIBC_STR_SLICE_H_
#include "libc/stdbool.h"
#include "libc/str/str.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
#define SlicesEqual(a, n, b, m) \
@ -21,5 +20,4 @@ int CompareSlices(const char *, size_t, const char *, size_t);
int CompareSlicesCase(const char *, size_t, const char *, size_t);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_SLICE_H_ */

View file

@ -1,6 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_STR_STRWIDTH_H_
#define COSMOPOLITAN_LIBC_STR_STRWIDTH_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
int strwidth(const char *, size_t) strlenesque;
@ -9,5 +8,4 @@ int strwidth16(const char16_t *, size_t) strlenesque;
int strnwidth16(const char16_t *, size_t, size_t) strlenesque;
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_STRWIDTH_H_ */

View file

@ -1,7 +1,6 @@
#ifndef COSMOPOLITAN_LIBC_STR_TPDECODECB_H_
#define COSMOPOLITAN_LIBC_STR_TPDECODECB_H_
#include "libc/intrin/bsr.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
/* TODO(jart): DELETE? */
@ -36,5 +35,4 @@ forceinline int tpdecodecb(wint_t *out, int first,
return i;
}
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_TPDECODECB_H_ */

View file

@ -1,6 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_STR_UNICODE_H_
#define COSMOPOLITAN_LIBC_STR_UNICODE_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
struct lconv {
@ -39,5 +38,4 @@ int wcsnwidth(const wchar_t *, size_t, size_t) strlenesque;
#endif /* _COSMO_SOURCE */
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_UNICODE_H_ */

View file

@ -6,7 +6,6 @@
#define UTF16_MOAR 0xd800 /* 0xD800..0xDBFF */
#define UTF16_CONT 0xdc00 /* 0xDC00..0xDFFF */
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
#define IsSurrogate(wc) ((0xf800 & (wc)) == 0xd800)
@ -25,5 +24,4 @@ COSMOPOLITAN_C_START_
: 0xFFFD)
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_UTF16_H_ */

View file

@ -16,7 +16,7 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/intrin/bits.h"
#include "libc/serialize.h"
#include "libc/macros.internal.h"
#include "libc/str/str.h"

View file

@ -1,6 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_STR_WCWIDTH_OSX_H_
#define COSMOPOLITAN_LIBC_STR_WCWIDTH_OSX_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
extern const uint32_t kWcwidthOsx[591];
@ -18,5 +17,4 @@ static inline int _wcwidth_osx(uint32_t codePoint) {
}
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_STR_WCWIDTH_OSX_H_ */