pico9918-core 1.3.0
TMS9918A / F18A video display processor emulation in C99
Loading...
Searching...
No Matches
platform.h File Reference

pico9918-core - Platform Abstraction More...

#include <stdint.h>
#include "platform/pico/platform_pico.h"
+ Include dependency graph for platform.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PICO9918_INLINE   static inline
 
#define PICO9918_INLINE_HOT   static inline __attribute__((always_inline))
 
#define PICO9918_NOINLINE   __attribute__((noinline))
 
#define PICO9918_MAY_ALIAS   __attribute__((may_alias))
 
#define PICO9918_ASSUME_ALIGNED(ptr, n)   __builtin_assume_aligned((ptr), (n))
 
#define PICO9918_STATIC_ASSERT(cond, msg)   _Static_assert(cond, msg)
 
#define PICO9918_HOST_ENTER_CRITICAL()   ((void)0)
 
#define PICO9918_HOST_EXIT_CRITICAL()   ((void)0)
 
#define PICO9918_HOST_STATUS_VISIBLE()   ((void)0)
 
#define PICO9918_LINE_CAPTURE_WAIT()   ((void)0)
 
#define PICO9918_LINE_CAPTURE(y, height, width, indices)   ((void)0)
 
#define PICO9918_LINE_NOTE_TIME(y, us)   ((void)0)
 
#define PICO9918_HOST_TIME_US()   time_us_32()
 
#define PICO9918_RGB333_CH(v)   (((v) << 1) | ((v) >> 2))
 
#define PICO9918_RGB12_FROM_RGB333(v)
 

Enumerations

enum  pico9918_lut_class_t { PICO9918_LUT_DOUBLED = 0 , PICO9918_LUT_PAIRED , PICO9918_LUT_DIRECT }
 

Detailed Description

pico9918-core - Platform Abstraction

Copyright (c) 2021 Troy Schrapel

This code is licensed under the MIT license

https://github.com/visrealm/pico9918-core

Dispatch header. Selects the platform implementation and declares the platform-independent parts of the contract.

A host may pre-define any PICO9918_* macro before including the library to override a desktop default (a real lock, a different pixel type, ...). The Pico implementation is not overridable - it must emit exact codegen.

Definition in file platform.h.

Macro Definition Documentation

◆ PICO9918_INLINE

#define PICO9918_INLINE   static inline

Definition at line 67 of file platform.h.

◆ PICO9918_INLINE_HOT

#define PICO9918_INLINE_HOT   static inline __attribute__((always_inline))

Definition at line 72 of file platform.h.

◆ PICO9918_NOINLINE

#define PICO9918_NOINLINE   __attribute__((noinline))

Definition at line 90 of file platform.h.

◆ PICO9918_MAY_ALIAS

#define PICO9918_MAY_ALIAS   __attribute__((may_alias))

Definition at line 91 of file platform.h.

◆ PICO9918_ASSUME_ALIGNED

#define PICO9918_ASSUME_ALIGNED (   ptr,
 
)    __builtin_assume_aligned((ptr), (n))

Definition at line 92 of file platform.h.

◆ PICO9918_STATIC_ASSERT

#define PICO9918_STATIC_ASSERT (   cond,
  msg 
)    _Static_assert(cond, msg)

Definition at line 103 of file platform.h.

◆ PICO9918_HOST_ENTER_CRITICAL

#define PICO9918_HOST_ENTER_CRITICAL ( )    ((void)0)

Definition at line 166 of file platform.h.

◆ PICO9918_HOST_EXIT_CRITICAL

#define PICO9918_HOST_EXIT_CRITICAL ( )    ((void)0)

Definition at line 170 of file platform.h.

◆ PICO9918_HOST_STATUS_VISIBLE

#define PICO9918_HOST_STATUS_VISIBLE ( )    ((void)0)

Definition at line 174 of file platform.h.

◆ PICO9918_LINE_CAPTURE_WAIT

#define PICO9918_LINE_CAPTURE_WAIT ( )    ((void)0)

Definition at line 189 of file platform.h.

◆ PICO9918_LINE_CAPTURE

#define PICO9918_LINE_CAPTURE (   y,
  height,
  width,
  indices 
)    ((void)0)

Definition at line 193 of file platform.h.

◆ PICO9918_LINE_NOTE_TIME

#define PICO9918_LINE_NOTE_TIME (   y,
  us 
)    ((void)0)

Definition at line 197 of file platform.h.

◆ PICO9918_HOST_TIME_US

#define PICO9918_HOST_TIME_US ( )    time_us_32()

Definition at line 226 of file platform.h.

◆ PICO9918_RGB333_CH

#define PICO9918_RGB333_CH (   v)    (((v) << 1) | ((v) >> 2))

Definition at line 239 of file platform.h.

◆ PICO9918_RGB12_FROM_RGB333

#define PICO9918_RGB12_FROM_RGB333 (   v)
Value:
((uint16_t)((PICO9918_RGB333_CH(((v) >> 6) & 0x07) << 8) | (PICO9918_RGB333_CH(((v) >> 3) & 0x07) << 4) | \
(PICO9918_RGB333_CH(((v)) & 0x07))))

Definition at line 241 of file platform.h.

Enumeration Type Documentation

◆ pico9918_lut_class_t

enum pico9918_lut_class_t

Definition at line 260 of file platform.h.