zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

workgroup_base.h (2569B) - Raw


      1 #ifndef __OS_WORKGROUP_BASE__
      2 #define __OS_WORKGROUP_BASE__
      3 
      4 #ifndef __OS_WORKGROUP_INDIRECT__
      5 #error "Please #include <os/workgroup.h> instead of this file directly."
      6 #endif
      7 
      8 #include <sys/types.h>
      9 #include <stddef.h>
     10 #include <stdint.h>
     11 #include <stdbool.h>
     12 #include <string.h>
     13 #include <stdlib.h>
     14 
     15 #include <mach/port.h>
     16 
     17 #include <Availability.h>
     18 #include <os/base.h>
     19 #include <os/object.h>
     20 #include <os/clock.h>
     21 
     22 #if __has_feature(assume_nonnull)
     23 #define OS_WORKGROUP_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
     24 #define OS_WORKGROUP_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
     25 #else
     26 #define OS_WORKGROUP_ASSUME_NONNULL_BEGIN
     27 #define OS_WORKGROUP_ASSUME_NONNULL_END
     28 #endif
     29 #define OS_WORKGROUP_WARN_RESULT __attribute__((__warn_unused_result__))
     30 #define OS_WORKGROUP_EXPORT OS_EXPORT
     31 #define OS_WORKGROUP_RETURNS_RETAINED OS_OBJECT_RETURNS_RETAINED
     32 #define OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN OS_ASSUME_PTR_ABI_SINGLE_BEGIN
     33 #define OS_WORKGROUP_ASSUME_ABI_SINGLE_END OS_ASSUME_PTR_ABI_SINGLE_END
     34 #define OS_WORKGROUP_UNSAFE_INDEXABLE OS_UNSAFE_INDEXABLE
     35 
     36 #define OS_WORKGROUP_DECL(name, swift_name) \
     37 	OS_SWIFT_NAME(swift_name) \
     38 	OS_OBJECT_SHOW_CLASS(name, OS_OBJECT_CLASS(object))
     39 
     40 #if OS_OBJECT_USE_OBJC
     41 #define OS_WORKGROUP_SUBCLASS_DECL_PROTO(name, swift_name, ...) \
     42 	OS_SWIFT_NAME(swift_name) \
     43 	OS_OBJECT_DECL_PROTOCOL(name ## __VA_ARGS__ )
     44 #else
     45 #define OS_WORKGROUP_SUBCLASS_DECL_PROTO(name, swift_name, ...)
     46 #endif
     47 
     48 #define OS_WORKGROUP_SUBCLASS_DECL(name, super, swift_name, ...) \
     49 	OS_SWIFT_NAME(swift_name) \
     50 	OS_OBJECT_SHOW_SUBCLASS(name, super, name, ## __VA_ARGS__)
     51 
     52 #if defined(__LP64__)
     53 #define __OS_WORKGROUP_ATTR_SIZE__ 60
     54 #define __OS_WORKGROUP_INTERVAL_DATA_SIZE__ 56
     55 #define __OS_WORKGROUP_JOIN_TOKEN_SIZE__ 36
     56 #else
     57 #define __OS_WORKGROUP_ATTR_SIZE__ 60
     58 #define __OS_WORKGROUP_INTERVAL_DATA_SIZE__ 56
     59 #define __OS_WORKGROUP_JOIN_TOKEN_SIZE__ 28
     60 #endif
     61 
     62 #define _OS_WORKGROUP_ATTR_SIG_DEFAULT_INIT 0x2FA863B4
     63 #define _OS_WORKGROUP_ATTR_SIG_EMPTY_INIT 0x2FA863C4
     64 
     65 OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN
     66 
     67 struct OS_REFINED_FOR_SWIFT os_workgroup_attr_opaque_s {
     68 	uint32_t sig;
     69 	char opaque[__OS_WORKGROUP_ATTR_SIZE__];
     70 };
     71 
     72 #define _OS_WORKGROUP_INTERVAL_DATA_SIG_INIT 0x52A74C4D
     73 struct OS_REFINED_FOR_SWIFT os_workgroup_interval_data_opaque_s {
     74 	uint32_t sig;
     75 	char opaque[__OS_WORKGROUP_INTERVAL_DATA_SIZE__];
     76 };
     77 
     78 struct OS_REFINED_FOR_SWIFT os_workgroup_join_token_opaque_s {
     79 	uint32_t sig;
     80 	char opaque[__OS_WORKGROUP_JOIN_TOKEN_SIZE__];
     81 };
     82 
     83 OS_WORKGROUP_ASSUME_ABI_SINGLE_END
     84 
     85 #endif /* __OS_WORKGROUP_BASE__ */