Hi again, well the second issue is a bit more clear now. It is because I do like this:
printf("%"FMT64"d %"FMT64"d", sec,usec); for some reason the second argument is shown as 0, though it is not 0. I guess I need to go deeper in preprocessed code. but the first one still remains: 1. this is always falling back to BDOOR_CMD_GETTIME case. Why? Is my WMWare too old? Sergey > Hello guys, > Urgently need your kind assistance! > While playing with time-syncing part of guestd I have faced the > following (mis?)behaviour of the block of code provided in the bottom (it is > taken from ToolsDaemon_SyncTime function). > I run it on VMWare 5.5.2 with SLED 10 Linux as a host and Fedora linux as a > guest. > What I see is: > 1. this is always falling back to BDOOR_CMD_GETTIME case. Why? Is my > WMWare too old? > 2. In the end I see that hostUsecs is always 0. What could be the reason? > BUT!!! I just made a test and discover that this two assignments > (that are the same for all 3 cases): > hostUsecs = bp.out.bx.word; > maxTimeLag = bp.out.cx.word; > in my case place something that looks _extremely_ like usecs from > the host to the maxTimeLag variable (Bug?) > I got rid of all the initialization in guestd, and call this > routine right away in int main(). Could this be the reason for this? > Really hope that you help me out. Thanks. > Sergey > ---------------------------------------------------------------------------- > Here comes the extract: > bp.in.cx.halfs.low = BDOOR_CMD_GETTIMEFULL_WITH_LAG; > Backdoor(&bp); > if (bp.out.ax.word == BDOOR_MAGIC) { > hostSecs = ((uint64)bp.out.si.word << 32) | bp.out.dx.word; > interruptLag = bp.out.di.word; > timeLagCall = TRUE; > Debug("Using BDOOR_CMD_GETTIMEFULL_WITH_LAG\n"); > } else { > Debug("BDOOR_CMD_GETTIMEFULL_WITH_LAG not supported by current host, > attempting " > "BDOOR_CMD_GETTIMEFULL\n"); > interruptLag = 0; > bp.in.cx.halfs.low = BDOOR_CMD_GETTIMEFULL; > Backdoor(&bp); > if (bp.out.ax.word == BDOOR_MAGIC) { > hostSecs = ((uint64)bp.out.si.word << 32) | bp.out.dx.word; > } else { > Debug("BDOOR_CMD_GETTIMEFULL not supported by current host, > attempting " > "BDOOR_CMD_GETTIME\n"); > bp.in.cx.halfs.low = BDOOR_CMD_GETTIME; > Backdoor(&bp); > hostSecs = bp.out.ax.word; > } > } > hostUsecs = bp.out.bx.word; > maxTimeLag = bp.out.cx.word; > ------------------------------------------------------------------------------ > _______________________________________________ > open-vm-tools-devel mailing list > open-vm-tools-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/open-vm-tools-devel -- С уважением, Sergey mailto:hq9000_...@mail.ru ------------------------------------------------------------------------------ _______________________________________________ open-vm-tools-devel mailing list open-vm-tools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-vm-tools-devel