28 lines
641 B
Python
28 lines
641 B
Python
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
# Copyright (C) 2020 Daniel Thompson
|
|
|
|
def const(fn):
|
|
return fn
|
|
|
|
def native(fn):
|
|
return fn
|
|
|
|
def viper(fn):
|
|
def ptr8(buf):
|
|
return buf
|
|
|
|
def ptr16(buf):
|
|
return memoryview(buf).cast('b').cast('H')
|
|
|
|
def ptr32(buf):
|
|
return memoryview(buf).cast('b').cast('I')
|
|
|
|
# This is a bit of a hack since the scopes don't exactly match where
|
|
# they would be in micropython but for the simple cases it does mean
|
|
# no changes to the client
|
|
fn.__globals__['ptr8'] = ptr8
|
|
fn.__globals__['ptr16'] = ptr16
|
|
fn.__globals__['ptr32'] = ptr32
|
|
|
|
return fn
|
|
|