view src/list/listContext.h @ 35:2bdd8e2118c7

Add tail pointer to List data segment
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 05 May 2015 21:16:04 +0900
parents c3314208d7b9
children 2ff693c5563c
line wrap: on
line source

/* Context definition for  list example */

#define ALLOCATE_SIZE 100

enum Code {
    Code1,
    Code2,
    Code3,
    Code4,
    Code5,
    Code6,
    Allocator,
    Append,
    Traverse,
    Delete,
    Exit,
};

enum UniqueData {
    Allocate,
    List,
};

struct Context {
    int codeNum;
    __code (**code) (struct Context *);
    void* heap_start;
    void* heap;
    long dataSize;
    int dataNum;
    union Data* head;
    union Data** data;
};

union Data {
    long count;
    struct List {
        union Data* head;
        union Data* tail;
        union Data* current;
    } list;
    struct Element {
        int value;
        union Data* next;
    } element;
    struct Allocate {
        long size;
        enum Code next;
        enum Code after_append;
        enum Code after_delete;
        enum Code after_traverse;
    } allocate;
};