Mercurial > hg > Members > Moririn
changeset 6:59c1086467f9
fix
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Mar 2015 19:58:02 +0900 |
parents | b8066055e295 |
children | ad48a076a8e5 |
files | src/allocate.c |
diffstat | 1 files changed, 23 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/src/allocate.c Wed Mar 18 16:19:17 2015 +0900 +++ b/src/allocate.c Fri Mar 20 19:58:02 2015 +0900 @@ -11,41 +11,41 @@ #define SIZE 1024 typedef struct DataSegment1 { - int i; // 4 byte - char c; // 1 byte - // padding 3 byte -} ds, *dsptr; // 8 byte + int i; // 4 byte + char c[10]; // 10 byte + // padding 2 byte +} ds; typedef struct metaDataSegment1 { size_t size; // 8 byte - dsptr ds; // 8 byte -} mds, *mdsptr; // 16 byte + ds* ds; // 8 byte +} mds; -typedef struct Context { - dsptr ds; - mdsptr mds; - dsptr ds_heap; - mdsptr mds_heap; -} context, *contextptr; +typedef struct Context_st { + ds* ds; + mds* mds; + ds* ds_heap; + mds* mds_heap; +} Context; -__code start_code(contextptr context) { +__code start_code(Context* context) { goto meta_start_code(context); } -__code meta_start_code(contextptr context) { +__code meta_start_code(Context* context) { goto code1(context); } -__code code1(contextptr context) { +__code code1(Context* context) { goto meta_code1(context); } -__code meta_code1(contextptr context) { +__code meta_code1(Context* context) { goto allocate(context, SIZE); } -__code allocate(contextptr context, int size) { - dsptr in = context->ds; +__code allocate(Context* context, int size) { + ds* in = context->ds; context->ds += size; context->mds->ds = in; context->mds->size = context->ds - in; @@ -53,13 +53,12 @@ goto meta_allocate(context, in); } -__code meta_allocate(contextptr context, dsptr in) { +__code meta_allocate(Context* context, ds* in) { goto exit_code(context, in, 0); } -__code exit_code(contextptr context, dsptr in, int i) { +__code exit_code(Context* context, ds* in, int i) { in[i].i = i; - printf("%d\n", in[i].i); if (i == SIZE) { free(context->ds_heap); free(context->mds_heap); @@ -69,9 +68,9 @@ } int main() { - contextptr context = (contextptr)malloc(sizeof(contextptr)); - context->ds_heap = (dsptr)malloc(1024); - context->mds_heap = (mdsptr)malloc(1024); + Context* context = (Context*)malloc(sizeof(Context)); + context->ds_heap = (ds*)malloc(1024); + context->mds_heap = (mds*)malloc(1024); context->ds = context->ds_heap; context->mds = context->mds_heap; goto start_code(context);