| 1 | :- module(ltsmin_c_interface, [put_chunk/3, | |
| 2 | put_chunk_written/3, | |
| 3 | ltsmin_initialize/2, | |
| 4 | h_zocket2/2, | |
| 5 | /*ltsmin_loop,*/ | |
| 6 | ltsmin_teardown/2, | |
| 7 | put_number/2, | |
| 8 | create_message/1, | |
| 9 | append_message/2, | |
| 10 | read_hex_str/2, | |
| 11 | free_str/1, | |
| 12 | atom_charptr/2, | |
| 13 | loadfr/0, | |
| 14 | reset_c_counters/0]). | |
| 15 | ||
| 16 | ||
| 17 | foreign(put_chunk, put_chunk(+address(zmsg_t),+address(char),+integer)). | |
| 18 | foreign(put_chunk_written, put_chunk_written(+address(zmsg_t),+address(char),+integer)). | |
| 19 | foreign(ltsmin_initialize, ltsmin_initialize(+string, [-address(void)])). | |
| 20 | %foreign(ltsmin_loop, ltsmin_loop(+address(void))). | |
| 21 | foreign(h_zocket2, h_zocket2(+address(void), [-integer])). | |
| 22 | foreign(ltsmin_teardown, ltsmin_teardown(+address(void), +string)). | |
| 23 | foreign(put_number, put_number(+address(zmsg_t),+integer)). | |
| 24 | foreign(create_message, create_message([-address(zmsg_t)])). | |
| 25 | foreign(append_message, append_message(+address(zmsg_t),+address(zmsg_t))). | |
| 26 | foreign(read_hex_str, read_hex_str(+codes,[-address(char)])). | |
| 27 | foreign(free_str, free_str(+address(char))). | |
| 28 | foreign(atom_charptr, atom_charptr(+codes, [-address(char)])). | |
| 29 | foreign(reset_c_counters, reset_c_counters). | |
| 30 | ||
| 31 | ||
| 32 | foreign_resource(ltsmin, | |
| 33 | [put_chunk,put_chunk_written,ltsmin_initialize,h_zocket2,/*ltsmin_loop,*/ltsmin_teardown,put_number,create_message,append_message,read_hex_str, free_str,atom_charptr, reset_c_counters]). | |
| 34 | ||
| 35 | :- dynamic loaded/0. | |
| 36 | ||
| 37 | loadfr :- | |
| 38 | (loaded -> true | |
| 39 | ; (assert(loaded), | |
| 40 | %assert_dir, | |
| 41 | load_foreign_resource(library(ltsmin)))). |