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

core, sys, drivers: 64-bit support preparations #20257

Merged
merged 3 commits into from
Jan 17, 2024

Conversation

fzi-haxel
Copy link
Contributor

Contribution description

Since #20154 still seems a bit too big to discuss properly, I decided to split it into smaller PRs.
This PR includes the changes to core, sys and drivers to enable 64-bit support.

The commits are part of this patch series

Testing procedure

All tests and applications should remain unchanged for existing platforms.

Issues/PRs references

See also #19890, #20154

Only minor changes are required to make the kernel 64 bit compatible.
Most of the changes are either DEBUG/printf formatting or different types for void pointer casting.

The only other change is the type of the `data` member in priority_queue_node_t, as `data` must be able to store a pointer.
For current architectures, the assumption `sizeof(unsigned int) == sizeof(void *)` holds, but not for 64 bit.
Therefore, the type is changed to `uintptr_t', which has the same size for the current architectures, but can also store a pointer in 64 bits.
@github-actions github-actions bot added Area: core Area: RIOT kernel. Handle PRs marked with this with care! Area: drivers Area: Device drivers Area: timers Area: timer subsystems Area: sys Area: System labels Jan 15, 2024
@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jan 15, 2024
@benpicco benpicco requested a review from maribu January 15, 2024 12:37
@riot-ci
Copy link

riot-ci commented Jan 15, 2024

Murdock results

✔️ PASSED

3feb1a3 drivers: 64 bit compatibility

Success Failures Total Runtime
8101 0 8101 12m:36s

Artifacts

sys/include/vfs.h Outdated Show resolved Hide resolved
@maribu
Copy link
Member

maribu commented Jan 17, 2024

Please squash!

* priority_queue_t: Replaced `-1U` literal with PRIORITY_QUEUE_DATA_SIGNALING define
* architecture.h: Added 64-bit
* bloom.h: Fixed typedef for the hashfp_t function pointer
* vfs.h: Increased default vfs buffer sizes for 64 bit
* bytes.h: Check if socklen_t is already defined
* ztimer: Use PRIxPTR format specifier
Fixed compilation errors for pointer casting.
@fzi-haxel
Copy link
Contributor Author

Please squash!

Done

@maribu maribu added this pull request to the merge queue Jan 17, 2024
Merged via the queue into RIOT-OS:master with commit 0cffb7f Jan 17, 2024
25 checks passed
@fzi-haxel fzi-haxel deleted the native64-part1 branch January 18, 2024 08:41
@MrKevinWeiss MrKevinWeiss added this to the Release 2024.01 milestone Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: core Area: RIOT kernel. Handle PRs marked with this with care! Area: drivers Area: Device drivers Area: sys Area: System Area: timers Area: timer subsystems CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants