68 lines
1.4 KiB
C
Executable file
68 lines
1.4 KiB
C
Executable file
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <util/list.h>
|
|
|
|
// Register Data Types
|
|
#define RDT_INT32 0x00 // 32Bit Integer
|
|
#define RDT_FLOAT 0x01 // 32Bit Fliesskommazahl
|
|
#define RDT_FP4816 0x02 // 64Bit Fixkommazahl (48.16).
|
|
#define RDT_BINARY 0x03 // 32Bit Bitmaske
|
|
#define RDT_FP1616 0x04 // 32Bit Fixkommazahl (16.16)
|
|
|
|
#define RDT_INT8 0x10 // 8Bit Integer -> auf Bus als 32bit
|
|
#define RDT_INT16 0x20 // 16Bit Integer -> auf Bus als 32bit
|
|
|
|
#define RDT_8BIT 0x10
|
|
#define RDT_16BIT 0x20
|
|
#define RDT_WRITE 0x80 // Flag für register_proc(...), Schreibzugriff
|
|
|
|
// RegisterProc Return Values
|
|
#define RPR_OK 0x00 // Kein Verarbeitungsfehler
|
|
|
|
|
|
|
|
/**
|
|
* register_node_proc(..) prototype: Callback to read/write register values of a "node"
|
|
**/
|
|
|
|
#define RNPOP_READ 0x0000
|
|
#define RNPOP_WRITE 0x0001
|
|
|
|
#define RNPOP_MASK 0x00FF
|
|
#define RNPOP_IDMASK 0xFF00
|
|
|
|
typedef int (*register_node_proc)(int op,int regno,uint8_t *type,void *buffer);
|
|
|
|
|
|
|
|
|
|
|
|
struct _rb2_register;
|
|
typedef struct _rb2_register RB2_REGISTER;
|
|
#define RB_REGISTER(ptr) ((RB2_REGISTER*)ptr)
|
|
|
|
struct _rb2_register_segment;
|
|
typedef struct _rb2_register_segment RB2_RSEGMENT;
|
|
#define RB2_RSEGMENT(ptr) ((RB2_RSEGMENT*)ptr)
|
|
|
|
|
|
struct _rb2_register
|
|
{
|
|
uint16_t register_no;
|
|
uint8_t register_type;
|
|
|
|
void *ptr;
|
|
|
|
};
|
|
|
|
struct _rb2_register_segment
|
|
{
|
|
list_t list;
|
|
|
|
struct _rb2_register
|
|
registers[];
|
|
};
|
|
|