/* Define both the original and replacement error symbol is possible. Thus the user is able to check symbolic errors after unsuccessful networking function calls. */ static void scm_socket_symbols_Win32 (socket_error_t * e) { while (e->error != -1) { if (e->error) { if (e->correct_str) scm_c_define (e->correct_str, scm_from_int (e->error)); if (e->replace && e->replace_str) scm_c_define (e->replace_str, scm_from_int (e->replace)); } e++; } }
/*! \brief Define a hook. * \par Function Description * Creates a Guile new hook with \a n_args arguments, and binds it to * the variable \a name, returning the newly created hook. * * \param n_args Number of arguments the hook should take. * \param name Name of variable to bind the hook to. * * \return the newly-created hook. */ static SCM create_hook (const char *name, int n_args) { SCM hook = scm_make_hook (scm_from_int (n_args)); scm_c_define (name, hook); return scm_permanent_object (hook); }
static void init_env(void) { SCM smob; char *ver; SOURCE_HANDLE *handle; init_log(); init_alsa_module(); ver = scm_to_locale_string(scm_version()); log_msg("Guile version %s\n", ver); free(ver); init_messaging(msg_port); init_time(); init_json(); init_scheduler(); init_audiofile(); if (use_jack) init_jackport(); init_feeds(); init_recorder(); init_stream(); init_source_mod(); init_ladspa(); init_unitgen(); fader = (SOURCE_OBJ *)my_malloc(sizeof(SOURCE_OBJ), "main fader"); handle = (SOURCE_HANDLE *)my_gc_malloc(sizeof(SOURCE_HANDLE), "mains", "mains"); handle->body = (void *)fader; handle->src = fader; init_source(fader); mains_tag = scm_make_smob_type("mains", sizeof(SOURCE_OBJ)); SCM_NEWSMOB(smob, mains_tag, handle); scm_c_define("mains", smob); if (use_jack) { scm_c_define("jack-client-name", scm_from_locale_string(client_name)); scm_c_define_gsubr("patch-out", 2, 0, 0, patch_out); scm_c_define_gsubr("unpatch-out", 2, 0, 0, unpatch_out); } scm_c_define_gsubr("quit", 0, 0, 0, qmx_quit); scm_c_define_gsubr("db", 1, 0, 0, db20); scm_c_define_gsubr("period-duty-cycle", 0, 0, 0, get_duty_cycle); scm_permanent_object(console_display = scm_c_eval_string(console_display_src)); scm_permanent_object(catch_display = scm_c_eval_string(catch_display_src)); return; }
void init_guile(void) { guile_current_session = NULL; // Set up the hooks. scm_c_define_gsubr("write-to-stderr", 1, 0, 0, &scheme_write_to_stderr); scm_c_define("send-command-hook", scm_make_hook(scm_from_int(1))); scm_c_define_gsubr("send-command", 1, 0, 0, &scheme_send_command); scm_c_define("config-filename", scm_from_locale_string("mud.scm")); // TODO: Make this configurable. scm_c_define_gsubr("reload-config", 0, 0, 0, &scheme_load_config_file); scm_c_define_gsubr("search-backwards", 1, 0, 0, &scheme_search_backwards); // Load up regex support. scm_c_use_module("ice-9 regex"); // Load the config file. scheme_load_config_file(); }
void gram_keydown_hook_init (void) { gram_keydown_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (2))); gram_keydown_hook_object = scm_permanent_object (scm_c_define ("keydown-hook", gram_keydown_hook)); scm_c_export ("keydown-hook", NULL); }
void gram_view_focus_hook_init (void) { gram_view_focus_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (2))); gram_view_focus_hook_object = scm_permanent_object (scm_c_define ("view-focus-hook", gram_view_focus_hook)); scm_c_export ("view-focus-hook", NULL); }
void gram_output_created_hook_init (void) { gram_output_created_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (1))); gram_output_created_hook_object = scm_permanent_object (scm_c_define ("output-created-hook", gram_output_created_hook)); scm_c_export ("output-created-hook", NULL); }
void gram_compositor_ready_hook_init (void) { gram_compositor_ready_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (0))); gram_compositor_ready_hook_object = scm_permanent_object (scm_c_define ("compositor-ready-hook", gram_compositor_ready_hook)); scm_c_export ("compositor-ready-hook", NULL); }
void gdbscm_define_variables (const scheme_variable *variables, int is_public) { const scheme_variable *sv; for (sv = variables; sv->name != NULL; ++sv) { scm_c_define (sv->name, sv->value); if (is_public) scm_c_export (sv->name, NULL); } }
void gdbscm_define_integer_constants (const scheme_integer_constant *constants, int is_public) { const scheme_integer_constant *sc; for (sc = constants; sc->name != NULL; ++sc) { scm_c_define (sc->name, scm_from_int (sc->value)); if (is_public) scm_c_export (sc->name, NULL); } }
void init_image(void) { scm_c_define("AV_PIX_FMT_RGB24" , scm_from_int(AV_PIX_FMT_RGB24)); scm_c_define("AV_PIX_FMT_BGR24" , scm_from_int(AV_PIX_FMT_BGR24)); scm_c_define("AV_PIX_FMT_BGRA" , scm_from_int(AV_PIX_FMT_BGRA)); scm_c_define("AV_PIX_FMT_GRAY8" , scm_from_int(AV_PIX_FMT_GRAY8)); scm_c_define("AV_PIX_FMT_YUV420P", scm_from_int(AV_PIX_FMT_YUV420P)); scm_c_define("AV_PIX_FMT_UYVY422", scm_from_int(AV_PIX_FMT_UYVY422)); scm_c_define("AV_PIX_FMT_YUYV422", scm_from_int(AV_PIX_FMT_YUYV422)); scm_c_define_gsubr("image-convert" , 4, 0, 0, SCM_FUNC(image_convert )); scm_c_define_gsubr("mjpeg-to-yuv420p", 4, 0, 0, SCM_FUNC(mjpeg_to_yuv420p)); }
void *init_scheme(void *data) { scm_c_define_gsubr("nwm-stop", 0, 0, 0, &scm_nwm_stop); scm_c_define_gsubr("count-clients", 0, 0, 0, &scm_count_clients); scm_c_define_gsubr("all-clients", 0, 0, 0, &scm_all_clients); scm_c_define_gsubr("visible-clients", 0, 0, 0, &scm_visible_clients); scm_c_define_gsubr("first-client", 0, 0, 0, &scm_first_client); scm_c_define_gsubr("next-client", 1, 0, 0, &scm_next_client); scm_c_define_gsubr("prev-client", 1, 0, 0, &scm_prev_client); scm_c_define_gsubr("client-list-reverse", 0, 0, 0, &scm_client_list_reverse); scm_c_define_gsubr("client-list-swap", 2, 0, 0, &scm_client_list_swap); scm_c_define_gsubr("test-undefined", 0, 0, 0, &scm_test_undefined); scm_c_define_gsubr("move-client", 3, 0, 0, &scm_move_client); scm_c_define_gsubr("resize-client", 3, 0, 0, &scm_resize_client); scm_c_define_gsubr("map-client", 1, 0, 0, &scm_map_client); scm_c_define_gsubr("unmap-client", 1, 0, 0, &scm_unmap_client); scm_c_define_gsubr("mapped?", 1, 0, 0, &scm_is_mapped); scm_c_define_gsubr("destroy-client", 1, 0, 0, &scm_destroy_client); scm_c_define_gsubr("dump-client", 1, 0, 0, &scm_dump_client); scm_c_define_gsubr("client-x", 1, 0, 0, &scm_client_x); scm_c_define_gsubr("client-y", 1, 0, 0, &scm_client_y); scm_c_define_gsubr("client-width", 1, 0, 0, &scm_client_width); scm_c_define_gsubr("client-height", 1, 0, 0, &scm_client_height); scm_c_define_gsubr("screen-width", 0, 0, 0, &scm_screen_width); scm_c_define_gsubr("screen-height", 0, 0, 0, &scm_screen_height); scm_c_define_gsubr("bind-key", 3, 0, 0, &scm_bind_key); scm_c_define_gsubr("clear", 0, 0, 0, &scm_clear); scm_c_define_gsubr("draw-border", 3, 0, 0, &scm_draw_border); scm_c_define_gsubr("get-focus-client", 0, 0, 0, &scm_get_focus_client); scm_c_define_gsubr("focus-client", 1, 0, 0, &scm_focus_client); scm_c_define_gsubr("get-client-name", 1, 0, 0, &scm_get_client_name); scm_c_define_gsubr("launch-program", 1, 0, 0, &scm_launch_program); scm_c_define_gsubr("log", 1, 0, 0, &scm_nwm_log); scm_c_define_gsubr("trace-x-events", 1, 0, 0, &scm_trace_x_events); scm_c_define("create-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("map-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("unmap-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("destroy-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("focus-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("update-client-hook", scm_make_hook(scm_from_int(1))); init_client_type(); init_io_buffer_ports(); return NULL; }
/*! \brief Register some libgeda variables with scheme. * \par Function Description * Define some variables to be visible to Scheme. */ void g_register_libgeda_vars (void) { scm_c_define("geda-rc-path", scm_from_utf8_string (s_path_sys_config ())); scm_c_define("geda-data-path", scm_from_utf8_string (s_path_sys_data ())); scm_c_define("path-sep", scm_from_utf8_string(G_DIR_SEPARATOR_S)); scm_c_define("OBJ_LINE", SCM_MAKE_CHAR((unsigned char) OBJ_LINE)); scm_c_define("OBJ_BOX", SCM_MAKE_CHAR((unsigned char) OBJ_BOX)); scm_c_define("OBJ_PICTURE", SCM_MAKE_CHAR((unsigned char) OBJ_PICTURE)); scm_c_define("OBJ_CIRCLE", SCM_MAKE_CHAR((unsigned char) OBJ_CIRCLE)); scm_c_define("OBJ_NET", SCM_MAKE_CHAR((unsigned char) OBJ_NET)); scm_c_define("OBJ_BUS", SCM_MAKE_CHAR((unsigned char) OBJ_BUS)); scm_c_define("OBJ_COMPLEX", SCM_MAKE_CHAR((unsigned char) OBJ_COMPLEX)); scm_c_define("OBJ_TEXT", SCM_MAKE_CHAR((unsigned char) OBJ_TEXT)); scm_c_define("OBJ_PIN", SCM_MAKE_CHAR((unsigned char) OBJ_PIN)); scm_c_define("OBJ_ARC", SCM_MAKE_CHAR((unsigned char) OBJ_ARC)); scm_c_define("OBJ_PLACEHOLDER", SCM_MAKE_CHAR((unsigned char) OBJ_PLACEHOLDER)); scm_c_define("OBJ_PATH", SCM_MAKE_CHAR((unsigned char) OBJ_PATH)); }
void init_core(void) { LLVMLinkInMCJIT(); LLVMInitializeNativeTarget(); LLVMInitializeNativeAsmPrinter(); LLVMInitializeNativeAsmParser(); llvm_module_tag = scm_make_smob_type("llvm_module", sizeof(struct llvm_module_t)); scm_set_smob_free(llvm_module_tag, free_llvm_module); llvm_function_tag = scm_make_smob_type("llvm_function", sizeof(struct llvm_function_t)); scm_set_smob_free(llvm_function_tag, free_llvm_function); llvm_value_tag = scm_make_smob_type("llvm_value", sizeof(struct llvm_value_t)); llvm_basic_block_tag = scm_make_smob_type("llvm_basic_block", sizeof(struct llvm_basic_block_t)); scm_c_define("llvm-bool" , scm_from_int(SCM_FOREIGN_TYPE_LAST + 1)); scm_c_define("llvm-void" , scm_from_int(SCM_FOREIGN_TYPE_VOID )); scm_c_define("llvm-float" , scm_from_int(SCM_FOREIGN_TYPE_FLOAT )); scm_c_define("llvm-double", scm_from_int(SCM_FOREIGN_TYPE_DOUBLE )); scm_c_define("llvm-uint8" , scm_from_int(SCM_FOREIGN_TYPE_UINT8 )); scm_c_define("llvm-int8" , scm_from_int(SCM_FOREIGN_TYPE_INT8 )); scm_c_define("llvm-uint16", scm_from_int(SCM_FOREIGN_TYPE_UINT16 )); scm_c_define("llvm-int16" , scm_from_int(SCM_FOREIGN_TYPE_INT16 )); scm_c_define("llvm-uint32", scm_from_int(SCM_FOREIGN_TYPE_UINT32 )); scm_c_define("llvm-int32" , scm_from_int(SCM_FOREIGN_TYPE_INT32 )); scm_c_define("llvm-uint64", scm_from_int(SCM_FOREIGN_TYPE_UINT64 )); scm_c_define("llvm-int64" , scm_from_int(SCM_FOREIGN_TYPE_INT64 )); scm_c_define("llvm-int-slt" , scm_from_int(LLVMIntSLT)); scm_c_define("llvm-int-ult" , scm_from_int(LLVMIntULT)); scm_c_define("llvm-int-sle" , scm_from_int(LLVMIntSLE)); scm_c_define("llvm-int-ule" , scm_from_int(LLVMIntULE)); scm_c_define("llvm-int-ugt" , scm_from_int(LLVMIntUGT)); scm_c_define("llvm-int-sgt" , scm_from_int(LLVMIntSGT)); scm_c_define("llvm-int-uge" , scm_from_int(LLVMIntUGE)); scm_c_define("llvm-int-sge" , scm_from_int(LLVMIntSGE)); scm_c_define("llvm-int-eq" , scm_from_int(LLVMIntEQ )); scm_c_define("llvm-int-ne" , scm_from_int(LLVMIntNE )); scm_c_define("llvm-real-lt" , scm_from_int(LLVMRealOLT)); scm_c_define("llvm-real-le" , scm_from_int(LLVMRealOLE)); scm_c_define("llvm-real-gt" , scm_from_int(LLVMRealOGT)); scm_c_define("llvm-real-ge" , scm_from_int(LLVMRealOGE)); scm_c_define("llvm-real-eq" , scm_from_int(LLVMRealOEQ)); scm_c_define("llvm-real-ne" , scm_from_int(LLVMRealONE)); scm_c_define_gsubr("make-llvm-module-base" , 0, 0, 0, SCM_FUNC(make_llvm_module_base )); scm_c_define_gsubr("llvm-module-destroy" , 1, 0, 0, SCM_FUNC(llvm_module_destroy )); scm_c_define_gsubr("llvm-dump-module" , 1, 0, 0, SCM_FUNC(llvm_dump_module )); scm_c_define_gsubr("make-llvm-function" , 4, 0, 0, SCM_FUNC(make_llvm_function )); scm_c_define_gsubr("llvm-function-destroy" , 1, 0, 0, SCM_FUNC(llvm_function_destroy )); scm_c_define_gsubr("llvm-function-return" , 2, 0, 0, SCM_FUNC(llvm_function_return )); scm_c_define_gsubr("llvm-function-return-void" , 1, 0, 0, SCM_FUNC(llvm_function_return_void )); scm_c_define_gsubr("llvm-compile-module" , 1, 0, 0, SCM_FUNC(llvm_compile_module )); scm_c_define_gsubr("llvm-get-function-address" , 2, 0, 0, SCM_FUNC(llvm_get_function_address )); scm_c_define_gsubr("llvm-verify-module" , 1, 0, 0, SCM_FUNC(llvm_verify_module )); scm_c_define_gsubr("make-llvm-basic-block" , 2, 0, 0, SCM_FUNC(make_llvm_basic_block )); scm_c_define_gsubr("llvm-position-builder-at-end", 2, 0, 0, SCM_FUNC(llvm_position_builder_at_end)); scm_c_define_gsubr("llvm-build-branch" , 2, 0, 0, SCM_FUNC(llvm_build_branch )); scm_c_define_gsubr("llvm-build-cond-branch" , 4, 0, 0, SCM_FUNC(llvm_build_cond_branch )); scm_c_define_gsubr("llvm-build-select" , 4, 0, 0, SCM_FUNC(llvm_build_select )); scm_c_define_gsubr("make-llvm-constant" , 2, 0, 0, SCM_FUNC(make_llvm_constant )); scm_c_define_gsubr("llvm-get-type" , 1, 0, 0, SCM_FUNC(llvm_get_type )); scm_c_define_gsubr("llvm-build-load" , 3, 0, 0, SCM_FUNC(llvm_build_load )); scm_c_define_gsubr("llvm-build-store" , 4, 0, 0, SCM_FUNC(llvm_build_store )); scm_c_define_gsubr("llvm-get-param" , 2, 0, 0, SCM_FUNC(llvm_get_param )); scm_c_define_gsubr("llvm-build-neg" , 2, 0, 0, SCM_FUNC(llvm_build_neg )); scm_c_define_gsubr("llvm-build-fneg" , 2, 0, 0, SCM_FUNC(llvm_build_fneg )); scm_c_define_gsubr("llvm-build-not" , 2, 0, 0, SCM_FUNC(llvm_build_not )); scm_c_define_gsubr("llvm-build-add" , 3, 0, 0, SCM_FUNC(llvm_build_add )); scm_c_define_gsubr("llvm-build-fadd" , 3, 0, 0, SCM_FUNC(llvm_build_fadd )); scm_c_define_gsubr("llvm-build-sub" , 3, 0, 0, SCM_FUNC(llvm_build_sub )); scm_c_define_gsubr("llvm-build-fsub" , 3, 0, 0, SCM_FUNC(llvm_build_fsub )); scm_c_define_gsubr("llvm-build-mul" , 3, 0, 0, SCM_FUNC(llvm_build_mul )); scm_c_define_gsubr("llvm-build-fmul" , 3, 0, 0, SCM_FUNC(llvm_build_fmul )); scm_c_define_gsubr("llvm-build-udiv" , 3, 0, 0, SCM_FUNC(llvm_build_udiv )); scm_c_define_gsubr("llvm-build-sdiv" , 3, 0, 0, SCM_FUNC(llvm_build_sdiv )); scm_c_define_gsubr("llvm-build-fdiv" , 3, 0, 0, SCM_FUNC(llvm_build_fdiv )); scm_c_define_gsubr("llvm-build-shl" , 3, 0, 0, SCM_FUNC(llvm_build_shl )); scm_c_define_gsubr("llvm-build-lshr" , 3, 0, 0, SCM_FUNC(llvm_build_lshr )); scm_c_define_gsubr("llvm-build-ashr" , 3, 0, 0, SCM_FUNC(llvm_build_ashr )); scm_c_define_gsubr("llvm-build-urem" , 3, 0, 0, SCM_FUNC(llvm_build_urem )); scm_c_define_gsubr("llvm-build-srem" , 3, 0, 0, SCM_FUNC(llvm_build_srem )); scm_c_define_gsubr("llvm-build-frem" , 3, 0, 0, SCM_FUNC(llvm_build_frem )); scm_c_define_gsubr("llvm-build-and" , 3, 0, 0, SCM_FUNC(llvm_build_and )); scm_c_define_gsubr("llvm-build-or" , 3, 0, 0, SCM_FUNC(llvm_build_or )); scm_c_define_gsubr("llvm-build-xor" , 3, 0, 0, SCM_FUNC(llvm_build_xor )); scm_c_define_gsubr("llvm-build-trunc" , 3, 0, 0, SCM_FUNC(llvm_build_trunc )); scm_c_define_gsubr("llvm-build-sext" , 3, 0, 0, SCM_FUNC(llvm_build_sext )); scm_c_define_gsubr("llvm-build-zext" , 3, 0, 0, SCM_FUNC(llvm_build_zext )); scm_c_define_gsubr("llvm-build-fp-cast" , 3, 0, 0, SCM_FUNC(llvm_build_fp_cast )); scm_c_define_gsubr("llvm-build-fp-to-si" , 3, 0, 0, SCM_FUNC(llvm_build_fp_to_si )); scm_c_define_gsubr("llvm-build-fp-to-ui" , 3, 0, 0, SCM_FUNC(llvm_build_fp_to_ui )); scm_c_define_gsubr("llvm-build-si-to-fp" , 3, 0, 0, SCM_FUNC(llvm_build_si_to_fp )); scm_c_define_gsubr("llvm-build-ui-to-fp" , 3, 0, 0, SCM_FUNC(llvm_build_ui_to_fp )); scm_c_define_gsubr("llvm-build-call" , 6, 0, 0, SCM_FUNC(llvm_build_call )); scm_c_define_gsubr("llvm-build-integer-cmp" , 4, 0, 0, SCM_FUNC(llvm_build_integer_cmp )); scm_c_define_gsubr("llvm-build-float-cmp" , 4, 0, 0, SCM_FUNC(llvm_build_float_cmp )); scm_c_define_gsubr("llvm-build-alloca" , 2, 0, 0, SCM_FUNC(llvm_build_alloca )); scm_c_define_gsubr("llvm-build-phi" , 2, 0, 0, SCM_FUNC(llvm_build_phi )); scm_c_define_gsubr("llvm-add-incoming" , 3, 0, 0, SCM_FUNC(llvm_add_incoming )); }
static void *define_wrapper(struct define_data *data) { return scm_c_define(data->name, py2scm(data->value)); }
int main(int argc, char **argv) { struct pollfd polls[MAX_POLL_ITEMS]; int opt, background, fdin, nfds, watch_alsa; int con_in, msg_in; background = 0; watch_alsa = 0; client_name = DEFAULT_CLIENT_NAME; server_name = DEFAULT_SERVER_NAME; msg_port = DEFAULT_MSG_PORT; sampling_rate = DEFAULT_SAMPLING_RATE; period_frames = DEFAULT_PERIOD_SIZE; while ((opt = getopt(argc, argv, "adn:p:P:r:s:")) != -1) { switch (opt) { case 'a': watch_alsa = 1; break; case 'd': background = 1; break; case 'j': use_jack = 1; break; case 'n': client_name = optarg; break; case 'P': msg_port = atoi(optarg); break; case 'p': period_frames = atoi(optarg); break; case 'r': sampling_rate = atoi(optarg); break; case 's': server_name = optarg; break; default: fprintf(stderr, "invalid option: %c", opt); exit(1); } } if (background) { set_handler(SIGCHLD, sigsnag); if (fork() > 0) _exit(0); } set_handler(SIGINT, sigsnag); set_handler(SIGTERM, sigsnag); set_handler(SIGABRT, sigsnag); set_handler(SIGHUP, sigsnag); set_handler(SIGQUIT, sigsnag); scm_init_guile(); init_env(); if (use_jack) start_jack(NULL); else { size_t memsize = QMX_CHANNELS * period_frames * sizeof(sample_t); fixed_cauldron = (sample_t *)malloc(memsize); int ret = mlock(fixed_cauldron, memsize); if (ret == 0) log_msg("MIXMEM locked: %lu\n", memsize); else log_msg("MIXMEM not locked: %s\n", strerror(errno)); } start_outbuffer(); scm_c_define("jack-sampling-rate", scm_from_int(sampling_rate)); while (optind < argc) { log_msg("load %s\n", argv[optind]); scm_c_primitive_load(argv[optind]); optind++; } fdin = fileno(stdin); nfds = 0; con_in = -1; if (!background) { con_in = nfds; polls[nfds].fd = fdin; polls[nfds].events = POLLIN; nfds++; } msg_in = -1; if (msg_socket() >= 0) { msg_in = nfds; polls[nfds].fd = msg_socket(); polls[nfds].events = POLLIN; nfds++; } if (isatty(fdin)) rl_callback_handler_install(prompt, line_handler); running = 1; if (!use_jack) spawn_detached_thread(mix_thread_abs, NULL); while (running) { if (watch_alsa) check_card_event(); if (poll(polls, nfds, POLL_TIMEOUT) < 1) continue; if ((con_in >= 0) && (polls[con_in].revents & POLLIN)) process_line(fdin); if ((msg_in >= 0) && (polls[msg_in].revents & POLLIN)) msg_process(); } if (isatty(fdin)) rl_callback_handler_remove(); shutdown_env(); log_msg("bye!\n"); cleanup(); return 0; }
void Scm::createHook(const QString& symb, unsigned int nbargs) { SCM hook=scm_make_hook(SCM_MAKINUM(nbargs)); scm_c_define(symb.ascii(),hook); sym[symb] = hook; }
void init_tensorflow(void) { tf_tensor_tag = scm_make_smob_type("tensor", sizeof(struct tf_tensor_t)); scm_set_smob_free(tf_tensor_tag, free_tensor); tf_graph_tag = scm_make_smob_type("graph", sizeof(struct tf_graph_t)); scm_set_smob_free(tf_graph_tag, free_graph); tf_description_tag = scm_make_smob_type("description", sizeof(struct tf_description_t)); scm_set_smob_free(tf_description_tag, free_description); tf_output_tag = scm_make_smob_type("output", sizeof(struct tf_output_t)); scm_set_smob_free(tf_output_tag, free_output); tf_session_tag = scm_make_smob_type("session", sizeof(struct tf_session_t)); scm_set_smob_free(tf_session_tag, free_session); _status = TF_NewStatus(); scm_c_define("TF_FLOAT" , scm_from_int(TF_FLOAT )); scm_c_define("TF_DOUBLE" , scm_from_int(TF_DOUBLE )); scm_c_define("TF_UINT8" , scm_from_int(TF_UINT8 )); scm_c_define("TF_INT8" , scm_from_int(TF_INT8 )); scm_c_define("TF_UINT16" , scm_from_int(TF_UINT16 )); scm_c_define("TF_INT16" , scm_from_int(TF_INT16 )); scm_c_define("TF_UINT32" , scm_from_int(TF_UINT32 )); scm_c_define("TF_INT32" , scm_from_int(TF_INT32 )); scm_c_define("TF_UINT64" , scm_from_int(TF_UINT64 )); scm_c_define("TF_COMPLEX64" , scm_from_int(TF_COMPLEX64 )); scm_c_define("TF_INT64" , scm_from_int(TF_INT64 )); scm_c_define("TF_BOOL" , scm_from_int(TF_BOOL )); scm_c_define("TF_COMPLEX128", scm_from_int(TF_COMPLEX128)); scm_c_define("TF_STRING" , scm_from_int(TF_STRING )); scm_c_define_gsubr("make-tensor" , 4, 0, 0, SCM_FUNC(make_tensor )); scm_c_define_gsubr("tf-from-tensor" , 1, 0, 0, SCM_FUNC(tf_from_tensor )); scm_c_define_gsubr("make-graph" , 0, 0, 0, SCM_FUNC(make_graph )); scm_c_define_gsubr("tf-graph-export_" , 2, 0, 0, SCM_FUNC(tf_graph_export_ )); scm_c_define_gsubr("tf-graph-import_" , 2, 0, 0, SCM_FUNC(tf_graph_import_ )); scm_c_define_gsubr("make-description" , 3, 0, 0, SCM_FUNC(make_description )); scm_c_define_gsubr("tf-finish-operation" , 2, 0, 0, SCM_FUNC(tf_finish_operation )); scm_c_define_gsubr("tf-add-input" , 2, 0, 0, SCM_FUNC(tf_add_input )); scm_c_define_gsubr("tf-add-input-list" , 2, 0, 0, SCM_FUNC(tf_add_input_list )); scm_c_define_gsubr("tf-set-attr-string" , 3, 0, 0, SCM_FUNC(tf_set_attr_string )); scm_c_define_gsubr("tf-set-attr-int" , 3, 0, 0, SCM_FUNC(tf_set_attr_int )); scm_c_define_gsubr("tf-set-attr-int-list" , 3, 0, 0, SCM_FUNC(tf_set_attr_int_list )); scm_c_define_gsubr("tf-set-attr-bool" , 3, 0, 0, SCM_FUNC(tf_set_attr_bool )); scm_c_define_gsubr("tf-set-attr-float" , 3, 0, 0, SCM_FUNC(tf_set_attr_float )); scm_c_define_gsubr("tf-set-attr-float-list" , 3, 0, 0, SCM_FUNC(tf_set_attr_float_list )); scm_c_define_gsubr("tf-set-attr-type" , 3, 0, 0, SCM_FUNC(tf_set_attr_type )); scm_c_define_gsubr("tf-set-attr-shape" , 3, 0, 0, SCM_FUNC(tf_set_attr_shape )); scm_c_define_gsubr("tf-set-attr-tensor" , 3, 0, 0, SCM_FUNC(tf_set_attr_tensor )); scm_c_define_gsubr("make-tf-session" , 1, 0, 0, SCM_FUNC(make_tf_session )); scm_c_define_gsubr("tf-run" , 3, 0, 0, SCM_FUNC(tf_run )); scm_c_define_gsubr("tf-add-gradient_" , 3, 0, 0, SCM_FUNC(tf_add_gradient_ )); scm_c_define_gsubr("tf-output?" , 1, 0, 0, SCM_FUNC(tf_outputq )); scm_c_define_gsubr("tf-graph-operation-by-name_" , 2, 0, 0, SCM_FUNC(tf_graph_operation_by_name_)); scm_c_define_gsubr("tf-operation-names_" , 1, 0, 0, SCM_FUNC(tf_operation_names_ )); }