stat1
if (ForceOpt || !OwnerMatch(stat1, &st2))
hc_chown(&DstHost, dpath, stat1->st_uid, stat1->st_gid);
if (stat1->st_mode != st2.st_mode)
hc_chmod(&DstHost, dpath, stat1->st_mode);
if (!FlagsMatch(stat1, &st2))
hc_chflags(&DstHost, dpath, stat1->st_flags);
if (ForceOpt || mtimecmp(stat1, &st2) != 0) {
tv[0].tv_sec = stat1->st_mtime;
tv[1].tv_sec = stat1->st_mtime;
tv[0].tv_usec = stat1->st_mtim.tv_nsec / 1000;
tv[1].tv_usec = stat1->st_mtim.tv_nsec / 1000;
if (UseMD5Opt && S_ISREG(stat1->st_mode)) {
} else if (S_ISREG(stat1->st_mode)) {
if (UseHLPath && (hpath = checkHLPath(stat1, spath, dpath)) != NULL) {
tv[0].tv_sec = stat1->st_mtime;
tv[1].tv_sec = stat1->st_mtime;
tv[0].tv_usec = stat1->st_mtim.tv_nsec / 1000;
tv[1].tv_usec = stat1->st_mtim.tv_nsec / 1000;
if (DstRootPrivs || ChgrpAllowed(stat1->st_gid))
hc_chown(&DstHost, path, stat1->st_uid, stat1->st_gid);
hc_chmod(&DstHost, path, stat1->st_mode);
if (stat1->st_flags & (UF_IMMUTABLE|SF_IMMUTABLE))
if (DstRootPrivs ? stat1->st_flags : stat1->st_flags & UF_SETTABLE)
hc_chflags(&DstHost, dpath, stat1->st_flags);
if ((stat1->st_flags & (UF_IMMUTABLE|SF_IMMUTABLE)) == 0)
} else if (S_ISLNK(stat1->st_mode)) {
(st2Valid && symlink_mfo_test(&DstHost, stat1, &st2))
tv[0].tv_sec = stat1->st_mtime;
tv[1].tv_sec = stat1->st_mtime;
tv[0].tv_usec = stat1->st_mtim.tv_nsec / 1000;
tv[1].tv_usec = stat1->st_mtim.tv_nsec / 1000;
hc_umask(&DstHost, ~stat1->st_mode);
if (DstRootPrivs || ChgrpAllowed(stat1->st_gid))
hc_lchown(&DstHost, path, stat1->st_uid, stat1->st_gid);
hc_lchmod(&DstHost, path, stat1->st_mode);
hc_lchflags(&DstHost, dpath, stat1->st_flags);
if (!OwnerMatch(stat1, &st2)) {
hc_lchown(&DstHost, dpath, stat1->st_uid, stat1->st_gid);
} else if ((S_ISCHR(stat1->st_mode) || S_ISBLK(stat1->st_mode)) && DeviceOpt) {
stat1->st_mode != st2.st_mode ||
stat1->st_rdev != st2.st_rdev ||
!OwnerMatch(stat1, &st2)
static int DoCopy(copy_info_t info, struct stat *stat1, int depth);
if (hc_mknod(&DstHost, path, stat1->st_mode, stat1->st_rdev) == 0) {
hc_chmod(&DstHost, path, stat1->st_mode);
hc_chown(&DstHost, path, stat1->st_uid, stat1->st_gid);
DoCopy(copy_info_t info, struct stat *stat1, int depth)
if (stat1 == NULL) {
stat1 = &st1;
if (stat1->st_flags & SF_SNAPSHOT)
if (S_ISREG(stat1->st_mode))
size = stat1->st_size;
if (S_ISREG(stat1->st_mode) && stat1->st_nlink > 1 && dpath) {
if ((hln = hltlookup(stat1)) != NULL) {
if (hln->nlinked == stat1->st_nlink) {
if (xlink(hln->name, dpath, stat1->st_flags) < 0) {
if (hln->nlinked == stat1->st_nlink) {
hln = hltadd(stat1, dpath);
&& stat1->st_mode == st2.st_mode
&& FlagsMatch(stat1, &st2)
if (S_ISLNK(stat1->st_mode) || S_ISDIR(stat1->st_mode)) {
stat1->st_size == st2.st_size &&
(ValidateOpt == 2 || mtimecmp(stat1, &st2) == 0) &&
OwnerMatch(stat1, &st2)
&& (UseMD5Opt == 0 || !S_ISREG(stat1->st_mode) ||
&& (ValidateOpt == 0 || !S_ISREG(stat1->st_mode) ||
if (!OwnerMatch(stat1, &st2)) {
hc_chown(&DstHost, dpath, stat1->st_uid, stat1->st_gid);
if (!FlagsMatch(stat1, &st2)) {
hc_chflags(&DstHost, dpath, stat1->st_flags);
if (st2Valid && !S_ISDIR(stat1->st_mode) && S_ISDIR(st2.st_mode)) {
if (S_ISDIR(stat1->st_mode)) {
if (hc_mkdir(&DstHost, dpath, stat1->st_mode | 0700) != 0) {
if (!OwnerMatch(stat1, &st2) &&
hc_chown(&DstHost, dpath, stat1->st_uid, stat1->st_gid) != 0
if (sdevNo != (dev_t)-1 && stat1->st_dev != sdevNo)
sdevNo = stat1->st_dev;
u_int8_t ostat0 = 0, stat0 = 0, ostat1 = 0, stat1 = 0;
stat1 = ATA_S_BUSY;
if ((mask & 0x02) && (stat1 & ATA_S_BUSY) &&
stat1 = ATA_IDX_INB(ch, ATA_STATUS);
stat1, err, lsb, msb);
if (stat1 == err && lsb == err && msb == err &&
timeout > (stat1 & ATA_S_BUSY ? 100 : 10))
if (!(stat1 & ATA_S_BUSY)) {
else if (stat1 & ATA_S_READY) {
else if ((stat1 & 0x0f) && err == lsb && err == msb) {
stat1 |= ATA_S_BUSY;
if (!(stat1 & ATA_S_BUSY) || (stat1 == 0xff && timeout > 10))
if (!(stat0 & ATA_S_BUSY) && !(stat1 & ATA_S_BUSY))
if ((stat1 == 0xff) && (timeout > 20))
stat0, stat1, ch->devices);
uint32_t stat0, stat1;
stat1 = BWN_READ_4(mac, BWN_XMITSTAT_1);
stat1);
stat.seq = (stat1 & 0x0000ffff);
stat.phy_stat = ((stat1 & 0x00ff0000) >> 16);
stat1(row++, diff_cp_time.cp_user, cp_total);
stat1(row++, diff_cp_time.cp_nice, cp_total);
stat1(row++, diff_cp_time.cp_sys, cp_total);
stat1(row++, diff_cp_time.cp_intr, cp_total);
stat1(row++, diff_cp_time.cp_idle, cp_total);
static void stat1(int, uint64_t, uint64_t);