initial work

This commit is contained in:
Philip C Monk 2015-06-04 22:47:27 -04:00
parent 7fd0f0aa1a
commit 2f26b60d59
3 changed files with 537 additions and 1553 deletions

View File

@ -297,6 +297,7 @@
struct _u3_udir;
struct _u3_ufil;
#ifdef DELETEME
/* u3_unod: in-file or in-directory.
*/
typedef struct _u3_unod {
@ -344,6 +345,43 @@
struct _u3_uhot* nex_u; // internal list
} u3_uhot;
#endif
typedef struct _u3_unod {
uv_fs_event_t was_u; // stat watcher
c3_o dir; // c3y if dir, c3n if file
c3_o dry; // ie, unmodified
c3_c* pax_c; // absolute path
struct _u3_unod* nex_u; // internal list
struct _u3_unod* par_u; // parent
} u3_unod;
typedef struct _u3_ufil {
uv_fs_event_t was_u; // stat watcher
c3_o dir; // c3y if dir, c3n if file
c3_o dry; // ie, unmodified
c3_c* pax_c; // absolute path
struct _u3_unod* nex_u; // internal list
c3_w sum_w; // md5sum of last %into
c3_w mus_w; // md5sum of last %ergo
} u3_ufil;
typedef struct _u3_udir {
uv_fs_event_t was_u; // stat watcher
c3_o dir; // c3y if dir, c3n if file
c3_o dry; // ie, unmodified
c3_c* pax_c; // absolute path
struct _u3_unod* nex_u; // internal list
u3_unod* kid_u; // subnodes
} u3_udir;
typedef struct _u3_umon {
u3_udir dir_u; // root directory
c3_c* nam_c; // mount point name
u3_umon* nex_u; // internal list
} u3_umon;
/* u3_usig: receive signals.
*/
typedef struct _u3_usig {
@ -356,7 +394,7 @@
*/
typedef struct _u3_unix {
uv_check_t syn_u; // fs sync check
u3_uhot* hot_u; // host state
u3_umon* mon_u; // mount points
u3_usig* sig_u; // signal list
#ifdef SYNCLOG
c3_w lot_w; // sync-slot
@ -935,17 +973,10 @@
void
u3_unix_ef_look(void);
/* u3_unix_ef_init(): update filesystem for new acquisition.
/* u3_unix_ef_ergo(): update filesystem from urbit
*/
void
u3_unix_ef_init(u3_noun who);
/* u3_unix_ef_ergo(): update filesystem, outbound.
*/
void
u3_unix_ef_ergo(u3_noun who,
u3_noun syd,
u3_noun rel,
u3_unix_ef_ergo(u3_noun mon,
u3_noun can);
/* u3_unix_io_init(): initialize storage.

View File

@ -102,7 +102,9 @@ _reck_kick_term(u3_noun pox, c3_l tid_l, u3_noun fav)
{
u3A->own = u3nc(u3k(p_fav), u3A->own);
#ifdef DELETEME
u3_unix_ef_init(u3k(p_fav));
#endif
u3_noun hox = u3dc("scot", 'p', u3k(p_fav));
c3_c* nam_c = u3r_string(hox);
@ -164,12 +166,10 @@ _reck_kick_sync(u3_noun pox, u3_noun fav)
switch ( u3h(fav) ) {
default: break;
case c3__ergo: {
u3_noun who = u3k(u3h(u3t(fav)));
u3_noun syd = u3k(u3h(u3t(u3t(fav))));
u3_noun rel = u3k(u3h(u3t(u3t(u3t(fav)))));
u3_noun can = u3k(u3t(u3t(u3t(u3t(fav)))));
u3_noun mon = u3k(u3h(u3t(fav)));
u3_noun can = u3k(u3t(u3t(fav)));
u3_unix_ef_ergo(who, syd, rel, can);
u3_unix_ef_ergo(mon, can);
u3z(pox); u3z(fav); return c3y;
} break;
}
@ -208,7 +208,9 @@ _reck_kick_ames(u3_noun pox, u3_noun fav)
{
u3A->own = u3nc(u3k(p_fav), u3A->own);
#ifdef DELETEME
u3_unix_ef_init(u3k(p_fav));
#endif
// uL(fprintf(uH, "kick: init: %d\n", p_fav));
u3z(pox); u3z(fav); return c3y;
@ -298,7 +300,9 @@ _reck_kick_spec(u3_noun pox, u3_noun fav)
{
u3A->own = u3nc(u3k(p_fav), u3A->own);
#ifdef DELETEME
u3_unix_ef_init(u3k(p_fav));
#endif
// uL(fprintf(uH, "kick: init: %d\n", p_fav));
u3z(pox); u3z(fav); return c3y;

2025
v/unix.c

File diff suppressed because it is too large Load Diff