From b175d94d45adc3b0777dfb09d6f82dabea0bab4f Mon Sep 17 00:00:00 2001 From: Petr Rockai <me@mornfall.net> Date: Tue, 14 Jan 2020 10:40:17 +0000 Subject: [PATCH] VM: Add pointer (de)composition utilities to divm.h. --- divine/vm/divm.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/divine/vm/divm.h b/divine/vm/divm.h index b02067710..200e15787 100644 --- a/divine/vm/divm.h +++ b/divine/vm/divm.h @@ -502,6 +502,24 @@ _VMUTIL_INLINE void __vm_cancel( void ) NOTHROW __vm_ctl_set( _VM_CR_Frame, 0 ); } +typedef struct { uint32_t off, obj; } __vm_pointer_t; +void *memcpy( void *dest, const void * src, unsigned long n ) NOTHROW; + +_VMUTIL_INLINE __vm_pointer_t __vm_pointer_split( void *ptr ) +{ + __vm_pointer_t rv; + memcpy( &rv, &ptr, sizeof( rv ) ); + return rv; +} + +_VMUTIL_INLINE void *__vm_pointer_make( uint32_t obj, uint32_t off ) +{ + __vm_pointer_t ptr = { off, obj }; + void *rv; + memcpy( &rv, &ptr, sizeof( rv ) ); + return rv; +} + EXTERN_END #endif // __divine__ -- GitLab