summaryrefslogtreecommitdiffstats
path: root/test/test.c
blob: c3e0028503364354b4a98995b0025ac2da62084e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <time.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include "kiro-trb.h"

struct test {
    uint32_t zahl;
    uint8_t buchstabe;
} __attribute__ ((packed));


int main (void)
{
    /*
    void* ptr = malloc(sizeof(struct test) + sizeof(uint64_t));
    memset(ptr, 0xFA, sizeof(struct test) + sizeof(uint64_t));
    struct test foo;
    foo.zahl = 42;
    foo.buchstabe = 'R';
    memcpy(ptr, &foo, sizeof(foo));

    struct test *tmp = (struct test *)ptr;
    printf("Zahl = %d\n",tmp->zahl);
    printf("Buchstabe = %c\n", tmp->buchstabe);
    printf("Remaining = %x\n", *((uint64_t *)(ptr+sizeof(struct test))));
    */
    KiroTrb *rb = g_object_new (KIRO_TYPE_TRB, NULL);
    kiro_trb_reshape (rb, sizeof (uint64_t), 3);
    void *buffer = kiro_trb_get_raw_buffer (rb);
    uint64_t foo = 0xAFFED00F;
    uint64_t bar = 0x1337BEEF;
    memcpy (kiro_trb_dma_push (rb), &foo, sizeof (foo));
    memcpy (kiro_trb_dma_push (rb), &foo, sizeof (foo));
    memcpy (kiro_trb_dma_push (rb), &foo, sizeof (foo));
    kiro_trb_push (rb, &bar);
    kiro_trb_push (rb, &foo);
    kiro_trb_push (rb, &foo);
    uint64_t *maman = kiro_trb_get_element (rb, 3);
    printf ("Stored in old: %x\n", *maman);
    KiroTrb *rb2 = g_object_new (KIRO_TYPE_TRB, NULL);
    kiro_trb_clone (rb2, kiro_trb_get_raw_buffer (rb));
    maman = kiro_trb_get_element (rb2, 3);
    printf ("Stored in New: %x\n", *maman);
    sleep (1);
    g_object_unref (rb);
    g_object_unref (rb2);
    return 0;
}