Got most of the new memory architecture roughed out.
This commit is contained in:
parent
19d6b0df29
commit
604fca3c24
36 changed files with 1118 additions and 0 deletions
39
src/c/payloads/vector_pointer.h
Normal file
39
src/c/payloads/vector_pointer.h
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
/**
|
||||
* payloads/vector_pointer.h
|
||||
*
|
||||
* A pointer to an object in vector space.
|
||||
*
|
||||
* (c) 2026 Simon Brooke <simon@journeyman.cc>
|
||||
* Licensed under GPL version 2.0, or, at your option, any later version.
|
||||
*/
|
||||
|
||||
#ifndef __psse_payloads_vector_pointer_h
|
||||
#define __psse_payloads_vector_pointer_h
|
||||
|
||||
#include "memory/pointer.h"
|
||||
|
||||
/**
|
||||
* A pointer to an object in vector space.
|
||||
*/
|
||||
#define VECTORPOINTTAG "VSP"
|
||||
|
||||
/**
|
||||
* @brief payload of a vector pointer cell.
|
||||
*/
|
||||
struct vectorp_payload {
|
||||
/** the tag of the vector-space object. NOTE that the vector space object
|
||||
* should itself have the identical tag. */
|
||||
union {
|
||||
/** the tag (type) of the vector-space object this cell
|
||||
* points to, considered as bytes. */
|
||||
char bytes[TAGLENGTH];
|
||||
/** the tag considered as a number */
|
||||
uint32_t value;
|
||||
} tag;
|
||||
/** unused padding to word-align the address */
|
||||
uint32_t padding;
|
||||
/** the address of the actual vector space object */
|
||||
void *address;
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue