urbit/include/noun/manage.h
Joe Bryan 54bc2c54a5 Merge branch 'master' into cc-release
* master: (50 commits)
  stop snprintfing from a string into itself
  pin arvo version number
  bumped urbit version number
  saves a checkpoint during replay, every 100K events or on failure
  simplifies loom init and checkpoint restore
  - Adds tracing during playback - stop snprintf-ing from one string into another, which is undefined behavior
  reclaim memory every 1k events in live operation or replay
  splits log files between arvo events
  name trace files by urbit date
  automatically split json trace outputs at 100000 line intervals
  stick |mass outputs in mass subdirectory of put
  adds comment about %funk hook in +ut
  adds sha-256 battery hashes to the jet dashboard, corrects axes
  [CI] disables deployment of tagged builds
  removes unused fprintf arg
  [CI] updates pinned arvo commit
  bumps urbit patch number to 0.7.1
  removes obsolete, commented-out gc implementation from loop.c
  moves all vere gc to _raft_grab(), run once after event
  Move _XOPEN_SOURCE #define to include/c/portable.h
  ...
2019-02-06 20:52:44 -05:00

144 lines
3.6 KiB
C

/* i/n/m.h
**
** This file is in the public domain.
*/
/** System management.
**/
/* u3m_boot(): start the u3 system.
*/
void
u3m_boot(c3_o nuu_o, c3_o bug_o, c3_c* dir_c, c3_c *pil_c, c3_c *url_c, c3_c *arv_c);
/* u3m_boot_new(): start the u3 system (new). return next event,
** starting from 1.
*/
c3_d
u3m_boot_new(c3_c* dir_c);
/* u3m_boot_pier(): start without checkpointing.
*/
c3_d
u3m_boot_pier(void);
/* u3m_bail(): bail out. Does not return.
**
** Bail motes:
**
** %exit :: semantic failure
** %evil :: bad crypto
** %intr :: interrupt
** %fail :: execution failure
** %foul :: assert failure
** %need :: network block
** %meme :: out of memory
** %time :: timed out
** %oops :: assertion failure
*/
c3_i
u3m_bail(c3_m how_m) __attribute__((noreturn));
/* u3m_init(): start the environment.
*/
void
u3m_init();
/* u3m_pave(): instantiate or activate image.
*/
void
u3m_pave(c3_o nuu_o, c3_o bug_o);
/* u3m_file(): load file, as atom, or bail.
*/
u3_noun
u3m_file(c3_c* pas_c);
/* u3m_error(): bail out with %exit, ct_pushing error.
*/
c3_i
u3m_error(c3_c* str_c);
/* u3m_hate(): new, integrated leap mechanism (enter).
*/
void
u3m_hate(c3_w pad_w);
/* u3m_love(): return product from leap.
*/
u3_noun
u3m_love(u3_noun pro);
/* u3m_soft(): system soft wrapper. unifies unix and nock errors.
**
** Produces [%$ result] or [%error (list tank)].
*/
u3_noun
u3m_soft(c3_w sec_w, u3_funk fun_f, u3_noun arg);
/* u3m_soft_slam: top-level call.
*/
u3_noun
u3m_soft_slam(u3_noun gat, u3_noun sam);
/* u3m_soft_nock: top-level nock.
*/
u3_noun
u3m_soft_nock(u3_noun bus, u3_noun fol);
/* u3m_soft_sure(): top-level call assumed correct.
*/
u3_noun
u3m_soft_sure(u3_funk fun_f, u3_noun arg);
/* u3m_soft_run(): descend into virtualization context.
*/
u3_noun
u3m_soft_run(u3_noun gul,
u3_funq fun_f,
u3_noun aga,
u3_noun agb);
/* u3m_soft_esc(): namespace lookup to (unit ,*).
*/
u3_noun
u3m_soft_esc(u3_noun ref, u3_noun sam);
/* u3m_mark(): mark all nouns in the road.
*/
c3_w
u3m_mark(FILE* fil_u);
/* u3m_grab(): garbage-collect the world, plus extra roots.
*/
void
u3m_grab(u3_noun som, ...); // terminate with u3_none
/* u3m_water(): produce high and low watermarks. Asserts u3R == u3H.
*/
void
u3m_water(c3_w *low_w, c3_w *hig_w);
/* u3m_pretty(): dumb prettyprint to string. RETAIN.
*/
c3_c*
u3m_pretty(u3_noun som);
/* u3m_p(): dumb print with caption. RETAIN.
*/
void
u3m_p(const c3_c* cap_c, u3_noun som);
/* u3m_tape(): dump a tape to stdout.
*/
void
u3m_tape(u3_noun tep);
/* u3m_wall(): dump a wall to stdout.
*/
void
u3m_wall(u3_noun wol);
/* u3m_reclaim: clear persistent caches to reclaim memory
*/
void
u3m_reclaim(void);