1- /* HASH CRC-32:0x1f5fac7d */
1+ /* HASH CRC-32:0x36606d2b */
22/* Copyright (c) 2019-2025 Griefer@Work *
33 * *
44 * This software is provided 'as-is', without any express or implied *
3535#include <hybrid/typecore.h>
3636#include <hybrid/byteorder.h>
3737#include <bits/types.h>
38+ #include <features.h>
3839
3940#define __STDC_VERSION_STDBIT_H__ 202311L
4041#define __STDC_ENDIAN_LITTLE__ __ORDER_LITTLE_ENDIAN__
@@ -381,56 +382,48 @@ __LOCAL __ATTR_CONST __ATTR_WUNUSED unsigned int __NOTHROW(__LIBCCALL stdc_first
381382 * Find first set (1-based, returning `0' when `x == 0') */
382383__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),ffs ,{ return __builtin_ffs (__i ); })
383384#elif defined(__CRT_HAVE_ffs )
384- #include <features.h>
385385/* >> stdc_first_leading_one(3) (type-generic)
386386 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
387387 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
388388 * Find first set (1-based, returning `0' when `x == 0') */
389389__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),ffs ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
390390#elif defined(__CRT_HAVE_ffsl ) && __SIZEOF_INT__ == __SIZEOF_LONG__
391- #include <features.h>
392391/* >> stdc_first_leading_one(3) (type-generic)
393392 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
394393 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
395394 * Find first set (1-based, returning `0' when `x == 0') */
396395__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),ffsl ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
397396#elif defined(__CRT_HAVE_stdc_first_leading_one_ul ) && __SIZEOF_INT__ == __SIZEOF_LONG__
398- #include <features.h>
399397/* >> stdc_first_leading_one(3) (type-generic)
400398 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
401399 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
402400 * Find first set (1-based, returning `0' when `x == 0') */
403401__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),stdc_first_leading_one_ul ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
404402#elif defined(__CRT_HAVE_ffsll ) && __SIZEOF_INT__ == __SIZEOF_LONG_LONG__
405- #include <features.h>
406403/* >> stdc_first_leading_one(3) (type-generic)
407404 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
408405 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
409406 * Find first set (1-based, returning `0' when `x == 0') */
410407__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),ffsll ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
411408#elif defined(__CRT_HAVE_stdc_first_leading_one_ull ) && __SIZEOF_INT__ == __SIZEOF_LONG_LONG__
412- #include <features.h>
413409/* >> stdc_first_leading_one(3) (type-generic)
414410 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
415411 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
416412 * Find first set (1-based, returning `0' when `x == 0') */
417413__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),stdc_first_leading_one_ull ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
418414#elif defined(__CRT_HAVE___ffs )
419- #include <features.h>
420415/* >> stdc_first_leading_one(3) (type-generic)
421416 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
422417 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
423418 * Find first set (1-based, returning `0' when `x == 0') */
424419__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),__ffs ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
425420#elif defined(__CRT_HAVE_stdc_first_leading_one_ui )
426- #include <features.h>
427421/* >> stdc_first_leading_one(3) (type-generic)
428422 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
429423 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
430424 * Find first set (1-based, returning `0' when `x == 0') */
431425__CEIDECLARE (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ui ,(unsigned int __i ),{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned int )__i ); })
432426#else /* ... */
433- #include <features.h>
434427/* >> stdc_first_leading_one(3) (type-generic)
435428 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
436429 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
@@ -444,56 +437,48 @@ __LOCAL unsigned int __NOTHROW_NCX(__LIBCCALL stdc_first_leading_one_ui)(unsigne
444437 * Find first set (1-based, returning `0' when `x == 0') */
445438__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),ffsl ,{ return __builtin_ffsl (__i ); })
446439#elif defined(__CRT_HAVE_ffsl )
447- #include <features.h>
448440/* >> stdc_first_leading_one(3) (type-generic)
449441 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
450442 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
451443 * Find first set (1-based, returning `0' when `x == 0') */
452444__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),ffsl ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
453445#elif defined(__CRT_HAVE_ffs ) && __SIZEOF_LONG__ == __SIZEOF_INT__
454- #include <features.h>
455446/* >> stdc_first_leading_one(3) (type-generic)
456447 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
457448 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
458449 * Find first set (1-based, returning `0' when `x == 0') */
459450__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),ffs ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
460451#elif defined(__CRT_HAVE___ffs ) && __SIZEOF_LONG__ == __SIZEOF_INT__
461- #include <features.h>
462452/* >> stdc_first_leading_one(3) (type-generic)
463453 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
464454 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
465455 * Find first set (1-based, returning `0' when `x == 0') */
466456__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),__ffs ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
467457#elif defined(__CRT_HAVE_stdc_first_leading_one_ui ) && __SIZEOF_LONG__ == __SIZEOF_INT__
468- #include <features.h>
469458/* >> stdc_first_leading_one(3) (type-generic)
470459 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
471460 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
472461 * Find first set (1-based, returning `0' when `x == 0') */
473462__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),stdc_first_leading_one_ui ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
474463#elif defined(__CRT_HAVE_ffsll ) && __SIZEOF_LONG__ == __SIZEOF_LONG_LONG__
475- #include <features.h>
476464/* >> stdc_first_leading_one(3) (type-generic)
477465 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
478466 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
479467 * Find first set (1-based, returning `0' when `x == 0') */
480468__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),ffsll ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
481469#elif defined(__CRT_HAVE_stdc_first_leading_one_ull ) && __SIZEOF_LONG__ == __SIZEOF_LONG_LONG__
482- #include <features.h>
483470/* >> stdc_first_leading_one(3) (type-generic)
484471 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
485472 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
486473 * Find first set (1-based, returning `0' when `x == 0') */
487474__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),stdc_first_leading_one_ull ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
488475#elif defined(__CRT_HAVE_stdc_first_leading_one_ul )
489- #include <features.h>
490476/* >> stdc_first_leading_one(3) (type-generic)
491477 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
492478 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
493479 * Find first set (1-based, returning `0' when `x == 0') */
494480__CEIDECLARE (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ul ,(unsigned long __i ),{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((unsigned long )__i ); })
495481#else /* ... */
496- #include <features.h>
497482/* >> stdc_first_leading_one(3) (type-generic)
498483 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
499484 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
@@ -1366,56 +1351,48 @@ __LOCAL __ATTR_CONST __ATTR_WUNUSED unsigned int __NOTHROW(__LIBCCALL stdc_trail
13661351 * Find first set (1-based, returning `0' when `x == 0') */
13671352__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),ffsll ,{ return __builtin_ffsll (__i ); })
13681353#elif defined(__CRT_HAVE_ffsll )
1369- #include <features.h>
13701354/* >> stdc_first_leading_one(3) (type-generic)
13711355 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
13721356 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
13731357 * Find first set (1-based, returning `0' when `x == 0') */
13741358__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),ffsll ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
13751359#elif defined(__CRT_HAVE_ffs ) && __SIZEOF_LONG_LONG__ == __SIZEOF_INT__
1376- #include <features.h>
13771360/* >> stdc_first_leading_one(3) (type-generic)
13781361 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
13791362 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
13801363 * Find first set (1-based, returning `0' when `x == 0') */
13811364__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),ffs ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
13821365#elif defined(__CRT_HAVE___ffs ) && __SIZEOF_LONG_LONG__ == __SIZEOF_INT__
1383- #include <features.h>
13841366/* >> stdc_first_leading_one(3) (type-generic)
13851367 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
13861368 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
13871369 * Find first set (1-based, returning `0' when `x == 0') */
13881370__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),__ffs ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
13891371#elif defined(__CRT_HAVE_stdc_first_leading_one_ui ) && __SIZEOF_LONG_LONG__ == __SIZEOF_INT__
1390- #include <features.h>
13911372/* >> stdc_first_leading_one(3) (type-generic)
13921373 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
13931374 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
13941375 * Find first set (1-based, returning `0' when `x == 0') */
13951376__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),stdc_first_leading_one_ui ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
13961377#elif defined(__CRT_HAVE_ffsl ) && __SIZEOF_LONG_LONG__ == __SIZEOF_LONG__
1397- #include <features.h>
13981378/* >> stdc_first_leading_one(3) (type-generic)
13991379 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
14001380 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
14011381 * Find first set (1-based, returning `0' when `x == 0') */
14021382__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),ffsl ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
14031383#elif defined(__CRT_HAVE_stdc_first_leading_one_ul ) && __SIZEOF_LONG_LONG__ == __SIZEOF_LONG__
1404- #include <features.h>
14051384/* >> stdc_first_leading_one(3) (type-generic)
14061385 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
14071386 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
14081387 * Find first set (1-based, returning `0' when `x == 0') */
14091388__CEIREDIRECT (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),stdc_first_leading_one_ul ,{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
14101389#elif defined(__CRT_HAVE_stdc_first_leading_one_ull )
1411- #include <features.h>
14121390/* >> stdc_first_leading_one(3) (type-generic)
14131391 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
14141392 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
14151393 * Find first set (1-based, returning `0' when `x == 0') */
14161394__CEIDECLARE (,unsigned int ,__NOTHROW_NCX ,stdc_first_leading_one_ull ,(__ULONGLONG __i ),{ return (__STDC_INT_AS_UINT_T )__hybrid_ffs ((__ULONGLONG )__i ); })
14171395#else /* ... */
1418- #include <features.h>
14191396/* >> stdc_first_leading_one(3) (type-generic)
14201397 * >> stdc_first_leading_one_uc(3), stdc_first_leading_one_us(3), stdc_first_leading_one_ui(3)
14211398 * >> stdc_first_leading_one_ul(3), stdc_first_leading_one_ull(3)
0 commit comments