summaryrefslogtreecommitdiff
path: root/src/libs6/s6_svstatus_pack.c
blob: 2b1f1020e949b35eed52bbedca010b2f74cbb9a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* ISC license. */

#include <skalibs/uint32.h>
#include <skalibs/uint64.h>
#include <skalibs/tai.h>
#include <s6/s6-supervise.h>

void s6_svstatus_pack (char *pack, s6_svstatus_t const *sv)
{
  tain_pack(pack, &sv->stamp) ;
  uint32_pack(pack + 12, (uint32)sv->pid) ;
  pack[16] = sv->flagpaused | (sv->flagfinishing << 1) ;
  pack[17] = sv->flagwant ? sv->flagwantup ? 'u' : 'd' : 0 ;
  uint64_pack(pack + 18, (uint64)sv->wstat) ;
}