mirror of
https://github.com/urbit/shrub.git
synced 2025-01-05 11:09:30 +03:00
About to activate brass boot.
This commit is contained in:
parent
e882a454dd
commit
f8c2960c1f
@ -1159,6 +1159,7 @@
|
|||||||
# define c3__vane c3_s4('v','a','n','e')
|
# define c3__vane c3_s4('v','a','n','e')
|
||||||
# define c3__var c3_s3('v','a','r')
|
# define c3__var c3_s3('v','a','r')
|
||||||
# define c3__veb c3_s3('v','e','b')
|
# define c3__veb c3_s3('v','e','b')
|
||||||
|
# define c3__veal c3_s4('v','e','a','l')
|
||||||
# define c3__veck c3_s4('v','e','c','k')
|
# define c3__veck c3_s4('v','e','c','k')
|
||||||
# define c3__veer c3_s4('v','e','e','r')
|
# define c3__veer c3_s4('v','e','e','r')
|
||||||
# define c3__vega c3_s4('v','e','g','a')
|
# define c3__vega c3_s4('v','e','g','a')
|
||||||
|
102
vere/pier.c
102
vere/pier.c
@ -107,7 +107,7 @@ _pier_work_shutdown(u3_pier* pir_u)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _pier_insert(): insert raw job.
|
/* _pier_insert(): insert raw event.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
_pier_insert(u3_pier* pir_u,
|
_pier_insert(u3_pier* pir_u,
|
||||||
@ -137,6 +137,22 @@ _pier_insert(u3_pier* pir_u,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* _pier_insert_ovum(): insert raw ovum.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
_pier_insert_ovum(u3_pier* pir_u,
|
||||||
|
c3_l msc_l,
|
||||||
|
u3_noun ovo)
|
||||||
|
{
|
||||||
|
u3_noun now;
|
||||||
|
struct timeval tim_tv;
|
||||||
|
|
||||||
|
gettimeofday(&tim_tv, 0);
|
||||||
|
now = u3_time_in_tv(&tim_tv);
|
||||||
|
|
||||||
|
_pier_insert(pir_u, msc_l, u3nc(now, ovo));
|
||||||
|
}
|
||||||
|
|
||||||
/* _pier_disk_precommit_complete(): save request completed.
|
/* _pier_disk_precommit_complete(): save request completed.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
@ -872,10 +888,13 @@ _pier_disk_consolidate(u3_pier* pir_u,
|
|||||||
c3_w inx_w = 1;
|
c3_w inx_w = 1;
|
||||||
|
|
||||||
if ( !u3A->sys ) {
|
if ( !u3A->sys ) {
|
||||||
|
fprintf(stderr, "boot: loading pill %s\r\n", pir_u->sys_c);
|
||||||
|
|
||||||
u3A->sys = u3m_file(pir_u->sys_c);
|
u3A->sys = u3m_file(pir_u->sys_c);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
u3_noun lal = u3ke_cue(u3k(u3A->sys));
|
u3_noun lal = u3ke_cue(u3k(u3A->sys));
|
||||||
|
#if 1
|
||||||
u3_noun all = lal;
|
u3_noun all = lal;
|
||||||
|
|
||||||
pir_u->but_d = u3kb_lent(u3k(all));
|
pir_u->but_d = u3kb_lent(u3k(all));
|
||||||
@ -885,6 +904,87 @@ _pier_disk_consolidate(u3_pier* pir_u,
|
|||||||
inx_w++;
|
inx_w++;
|
||||||
all = u3t(all);
|
all = u3t(all);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
/* this new boot sequence is almost, but not quite,
|
||||||
|
** the right thing. see new arvo.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun who = u3i_chubs(2, pir_u->who_d);
|
||||||
|
u3_noun bot, mod, fil;
|
||||||
|
|
||||||
|
u3r_trel(lal, &bot, &mod, &fil);
|
||||||
|
pir_u->but_d = 0;
|
||||||
|
|
||||||
|
/* insert boot sequence directly
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun seq = u3k(bot);
|
||||||
|
{
|
||||||
|
u3_noun all = seq;
|
||||||
|
|
||||||
|
pir_u->but_d += u3kb_lent(u3k(all));
|
||||||
|
while ( all ) {
|
||||||
|
_pier_insert(pir_u, 0, u3k(u3h(all)));
|
||||||
|
inx_w++;
|
||||||
|
all = u3t(all);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
u3z(seq);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* insert module sequence, prepending first identity event
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun seq;
|
||||||
|
|
||||||
|
/* prepend identity event to module sequence
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun wir = u3nt(c3__name, u3dc("scot", 'p', u3k(who)), u3_nul);
|
||||||
|
u3_noun car = u3nc(c3__veal, u3k(who));
|
||||||
|
u3_noun ovo = u3nc(wir, car);
|
||||||
|
|
||||||
|
seq = u3nc(ovo, u3k(mod));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* insert with timestamp
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun all = seq;
|
||||||
|
|
||||||
|
pir_u->but_d += u3kb_lent(u3k(all));
|
||||||
|
|
||||||
|
while ( all ) {
|
||||||
|
_pier_insert_ovum(pir_u, 0, u3k(u3h(all)));
|
||||||
|
inx_w++;
|
||||||
|
all = u3t(all);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* insert legacy boot event
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun ovo;
|
||||||
|
|
||||||
|
/* make legacy boot event
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
u3_noun wir = u3nq(u3_blip, c3__term, '1', u3_nul);
|
||||||
|
u3_noun car = u3nq(c3__boot, c3__sith, u3k(who), u3nc(u3k(who), c3y));
|
||||||
|
|
||||||
|
ovo = u3nc(wir, car);
|
||||||
|
}
|
||||||
|
_pier_insert_ovum(pir_u, 0, ovo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* insert filesystem install event
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
_pier_insert_ovum(pir_u, 0, u3k(fil));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
u3z(lal);
|
u3z(lal);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user