Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Time64 #583

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Time64 #583

wants to merge 8 commits into from

Conversation

deadwood2
Copy link
Contributor

This is a proposal of implementation of future 64-bit time support. What the changes do now is to freeze certain elements on 32-bit "forever" - essentially places where relative time is used and 32-bits is enough as well as document how the implementation can be done in future in a way that no longer breaks compatibility.

Note: side effect of these structure changes is that structure copying no longer works in some cases even though structures have same fields. This means field by field copying is needed.

@deadwood2
Copy link
Contributor Author

Functionally tested in my repository on linux-x86_64 and amiga-m68k (for backwards compatibility). Build tested on linux-x86_64 and pc-x86_64 in this repository.

deadwood added 8 commits December 26, 2022 09:09
Introduction on struct timeval32 as first step of migration towards
64-bit time.

intuition/preferences -> 32-bit is enough to store these values
prefs/input.h -> 32-bit is enough to store these values
InputEvent.ie_TimeStamp -> today this contains absolute time, but
the requirement is only to monotonically grow, so a relative time is
enough if used consistently. GetSysTime32/CurrentTime will do a rollover
and will continue returning growing values
64-bit time will have separate commands and separate timerequest
structure. This matches how 64-bit was introduced in trackdisk
commands (although there it was possible to use the same structure
which is not possible in this case).
@deadwood2
Copy link
Contributor Author

FYI, the Codacy warnings are invalid in this case. We are setting fields of the request and passing the request to DoIO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant