コード例 #1
0
ファイル: env.c プロジェクト: localchart/yasfs
int main()
{
	OBJ env;
	OBJ find;
	OBJ name;

	env = env_null();
	obj_write(stdout,env_frame(env));
	printf("\n");

	name = obj_make_symbol("if");
	find = lookup_variable_value(name,env);
	obj_write(stdout,find);
	find = lookup_variable_value(name,env);
	obj_write(stdout,find);

	printf("\n");
	obj_write(stdout,env_frame(env));
	printf("\n");

	gc(env);
	printf("\n");
	obj_write(stdout,env_frame(env));
	printf("\n");
	return 0;
}
コード例 #2
0
ファイル: edb.c プロジェクト: Knio/everdb-native
int edb_array_pop(obj_handle *h, void* data) {
  LOG_HERE;
  int err = 0;
  u32 root;
  CHECK(obj_write(h, &root));
  CHECK(array_pop(h->db, root, data));
  err: return err;
}
コード例 #3
0
ファイル: edb.c プロジェクト: Knio/everdb-native
int edb_array_set(obj_handle *h, u32 index, void* data) {
  LOG_HERE;
  int err = 0;
  u32 root;
  CHECK(obj_write(h, &root));
  CHECK(array_get(h->db, root, index, data));
  err: return err;
}
コード例 #4
0
ファイル: grutad.c プロジェクト: angelortega/gruta
static void gd_set_dump(struct gd_set *s, FILE *o)
{
    struct gd_val *v;

    gd_set_lock(s, LOCK_RO);

    v = s->set;
    while (v) {
        fprintf(o, "store_%s\n", s->name);
        obj_write(v->v, o, NULL);
        v = v->n;
    }

    gd_set_lock(s, UNLOCK_RO);
}
コード例 #5
0
ファイル: grutad.c プロジェクト: angelortega/gruta
static void gd_set_get(struct gd_set *s, FILE *i, FILE *o)
{
    struct gd_val *obj;
    char *a;

    a = arg_read(i, o);

    gd_set_lock(s, LOCK_RO);

    if ((obj = gd_val_get(s->set, a)) != NULL) {
        obj_write(obj->v, o, o);
    }
    else
        fprintf(o, "ERROR %s %s not found\n", a, s->name);

    gd_set_lock(s, UNLOCK_RO);

    free(a);
}
コード例 #6
0
static int do_work(struct kid_t *kid)
{
        int rc = 0, err, iter = 0;

        if (!(kid->k_cmd.c_flags & C_CREATE_EVERY))
                rc = obj_create(kid);

        for (iter = 0; iter < kid->k_cmd.c_rpt; iter++) {
                if (rc || sig_received)
                        break;

                if (kid->k_cmd.c_flags & C_CREATE_EVERY) {
                        rc = obj_create(kid);
                        if (rc)
                                break;
                }

                if (kid->k_cmd.c_flags & C_WRITE) {
                        rc = obj_write(kid);
                        grant_estimate(kid->k_id);
                }

                if (kid->k_cmd.c_flags & C_CREATE_EVERY) {
                        err = obj_delete(kid);
                        if (!rc) rc = err;
                }

                if ((o_verbose > 3) && (iter % 10 == 0))
                        printf("%d: i%d\n", kid->k_id, iter);
                if (!rc)
                        sleep(kid->k_cmd.c_delay);
        }

        if (!(kid->k_cmd.c_flags & C_CREATE_EVERY)) {
                err = obj_delete(kid);
                if (!rc) rc = err;
        }

        if (o_verbose > 2)
                printf("%d: done (%d)\n", kid->k_id, rc);

        return rc;
}
コード例 #7
0
ファイル: asm.c プロジェクト: forestbelton/tenyr
static int obj_fini(FILE *stream, void **ud)
{
    int rc = 0;

    struct obj_fdata *u = *ud;
    struct obj *o = u->o;

    if (u->flags & ASM_ASSEMBLE) {
        o->records->size = u->insns;
        o->sym_count = u->syms;
        o->rlc_count = u->rlcs;

        obj_write(u->o, stream);
    }

    obj_free(u->o);

    free(*ud);
    *ud = NULL;

    return rc;
}
コード例 #8
0
ファイル: grutad.c プロジェクト: angelortega/gruta
static void dialog(FILE *i, FILE *o)
{
    int done = 0;

    while (!done) {
        char *cmd = line_read(i);

        if (cmd == NULL || strcmp(cmd, "bye") == 0) {
            done = 1;
        }
        else
        if (strcmp(cmd, "about") == 0) {
            obj_write(about, o, o);
        }
        else
        if (strcmp(cmd, "topic") == 0) {
            gd_set_get(topics, i, o);
        }
        else
        if (strcmp(cmd, "store_topic") == 0) {
            gd_set_store(topics, i, o);
        }
        else
        if (strcmp(cmd, "topics") == 0) {
            gd_set_list_write(topics, i, o);
        }
        else
        if (strcmp(cmd, "user") == 0) {
            gd_set_get(users, i, o);
        }
        else
        if (strcmp(cmd, "store_user") == 0) {
            gd_set_store(users, i, o);
        }
        else
        if (strcmp(cmd, "users") == 0) {
            gd_set_list_write(users, i, o);
        }
        else
        if (strcmp(cmd, "template") == 0) {
            gd_set_get(templates, i, o);
        }
        else
        if (strcmp(cmd, "store_template") == 0) {
            gd_set_store(templates, i, o);
        }
        else
        if (strcmp(cmd, "templates") == 0) {
            gd_set_list_write(templates, i, o);
        }
        else
        if (strcmp(cmd, "store_story") == 0) {
            gd_set_store_story(i, o);
        }
        else
        if (strcmp(cmd, "delete_story") == 0) {
            gd_set_delete(stories, i, o);
        }
        else
        if (strcmp(cmd, "story") == 0) {
            gd_set_get(stories, i, o);
        }
        else
        if (strcmp(cmd, "story_set") == 0) {
            gd_story_set(i, o);
        }
        else
        if (strcmp(cmd, "_dump") == 0) {
            FILE *f;

            f = fopen("dump.bin", "w");
            dump(f);
            fclose(f);
        }
        else {
            fprintf(o, "ERROR %s command not found\n", cmd);
        }

        free(cmd);
    }
}