67#define PICO9918_INLINE static inline
69#if defined(_MSC_VER) && !defined(__clang__)
70#define PICO9918_INLINE_HOT static __forceinline
72#define PICO9918_INLINE_HOT static inline __attribute__((always_inline))
85#if defined(_MSC_VER) && !defined(__clang__)
86#define PICO9918_NOINLINE __declspec(noinline)
87#define PICO9918_MAY_ALIAS
88#define PICO9918_ASSUME_ALIGNED(ptr, n) (ptr)
90#define PICO9918_NOINLINE __attribute__((noinline))
91#define PICO9918_MAY_ALIAS __attribute__((may_alias))
92#define PICO9918_ASSUME_ALIGNED(ptr, n) __builtin_assume_aligned((ptr), (n))
101#define PICO9918_STATIC_ASSERT(cond, msg) static_assert(cond, msg)
103#define PICO9918_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
122#ifdef PICO9918_HOST_OPS_HEADER
123#include PICO9918_HOST_OPS_HEADER
145#if defined(PICO_BUILD) && !defined(PICO9918_HOST_OPS_SUPPLIED)
147 "Pico build without host tier-1 ops: PICO9918_HOST_OPS_HEADER was not supplied, or the header that was included is not the host's (a same-named file beside this header shadows it). The ops header must #define PICO9918_HOST_OPS_SUPPLIED 1."
165#ifndef PICO9918_HOST_ENTER_CRITICAL
166#define PICO9918_HOST_ENTER_CRITICAL() ((void)0)
169#ifndef PICO9918_HOST_EXIT_CRITICAL
170#define PICO9918_HOST_EXIT_CRITICAL() ((void)0)
173#ifndef PICO9918_HOST_STATUS_VISIBLE
174#define PICO9918_HOST_STATUS_VISIBLE() ((void)0)
188#ifndef PICO9918_LINE_CAPTURE_WAIT
189#define PICO9918_LINE_CAPTURE_WAIT() ((void)0)
192#ifndef PICO9918_LINE_CAPTURE
193#define PICO9918_LINE_CAPTURE(y, height, width, indices) ((void)0)
196#ifndef PICO9918_LINE_NOTE_TIME
197#define PICO9918_LINE_NOTE_TIME(y, us) ((void)0)
225#ifndef PICO9918_HOST_TIME_US
226#define PICO9918_HOST_TIME_US() time_us_32()
239#define PICO9918_RGB333_CH(v) (((v) << 1) | ((v) >> 2))
241#define PICO9918_RGB12_FROM_RGB333(v) \
242 ((uint16_t)((PICO9918_RGB333_CH(((v) >> 6) & 0x07) << 8) | (PICO9918_RGB333_CH(((v) >> 3) & 0x07) << 4) | \
243 (PICO9918_RGB333_CH(((v)) & 0x07))))
262 PICO9918_LUT_DOUBLED = 0,
265} pico9918_lut_class_t;