Isaac Freund
9f9f215305
stage1, stage2: rename c_void to anyopaque ( #10316 )
...
zig fmt now replaces c_void with anyopaque to make updating
code easy.
2021-12-19 00:24:45 -05:00
Jens Goldberg
5b29b4ffa6
Fix MIPS inline assembly clobbers
2021-12-18 14:42:01 -08:00
Vincent Rischmann
f9b8808d74
os/linux/io_uring: implement linkat
2021-12-12 18:49:17 +01:00
Vincent Rischmann
5dd53c1986
os/linux/io_uring: implement symlinkat
2021-12-12 18:43:31 +01:00
Vincent Rischmann
1fd0542bee
os/linux/io_uring: implement mkdirat
2021-12-12 18:33:17 +01:00
Vincent Rischmann
4e647dee9f
os/linux/io_uring: implement unlinkat
2021-12-12 18:32:08 +01:00
Vincent Rischmann
088c1fab4d
os/linux/io_uring: implement renameat
2021-12-12 18:12:15 +01:00
Vincent Rischmann
0229fb7c62
os/linux/io_uring: implement shutdown
2021-12-12 18:04:15 +01:00
Vincent Rischmann
331b8e892a
os/linux: add more io_uring opcode
2021-12-12 16:55:51 +01:00
Zapolsky Anton
2dae860de3
Added an explicit type for the termios constants ( #10266 )
...
Adds the `tcflag_t` type to the termios constants.
This is made to allow bitwise operations on the termios
constants without an integer cast, e.g.:
```zig
var raw = try std.os.tcgetattr(std.os.STDIN_FILENO);
raw.lflag &= std.os.linux.ECHO | std.os.linux.ICANON;
```
instead of
```zig
var raw = try std.os.tcgetattr(std.os.STDIN_FILENO);
raw.lflag &= ~@intCast(u32, std.os.linux.ECHO | std.os.linux.ICANON);
```
Contributes to #10181
2021-12-04 16:24:55 -05:00
Andrew Kelley
36b6e95aa3
Merge pull request #9927 from vrischmann/fix-rlimit-resource
...
Fix rlimit_resource for MIPS and SPARC
2021-12-03 16:45:55 -08:00
Hiroaki Nakamura
0714832c21
Fix test for io_uring link_timeout
...
The old test "timeout_link_chain1" was ported from liburing test_timeout_link_chain1
509873c445/test/link-timeout.c (L539-L628)
However it turns out that both fails with EBADF (-9) on Linux kernel 5.4.
The this new test skips properly on Linux kernel 5.4
and passes on Linux kernel 5.11.
2021-12-01 14:30:33 -08:00
Lee Cannon
1093b09a98
allocgate: renamed getAllocator function to allocator
2021-11-30 23:32:47 +00:00
Lee Cannon
85de022c56
allocgate: std Allocator interface refactor
2021-11-30 23:32:47 +00:00
Andrew Kelley
902df103c6
std lib API deprecations for the upcoming 0.9.0 release
...
See #3811
2021-11-30 00:13:07 -07:00
Andrew Kelley
ec10e63f49
std: add workaround for failing io_uring test
...
See #10247
2021-11-29 18:04:28 -07:00
Hiroaki Nakamura
f5c0c0803f
Merge pull request #10151 from hnakamur/zig
...
io_uring: adds link_timeout
2021-11-23 12:32:25 -06:00
Stephen von Takach
ed70f9981c
feat(uefi): add virtual addressing helpers ( #10195 )
...
based off definitions in https://uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf
2021-11-22 21:32:16 -05:00
Vincent Rischmann
3d528161c8
io_uring: implement register_files_update
2021-11-16 19:54:19 -05:00
Vincent Rischmann
d7c770fb7f
os: fix getrlimit/setrlimit test for MIPS
...
This test can fail due to a fix in musl for 32 bit MIPS, where musl changes limits greater than -1UL/2 to RLIM_INFINITY.
See http://git.musl-libc.org/cgit/musl/commit/src/misc/getrlimit.c?id=8258014fd1e34e942a549c88c7e022a00445c352
Depending on the system where the test is run getrlimit can return
RLIM_INFINITY for example if RLIMIT_MEMLOCK is bigger than ~2GiB.
If that happens, the setrlimit call will fail with PermissionDenied.
2021-11-16 20:36:50 +01:00
Vincent Rischmann
353c59e6d5
os/linux: fix rlimit_resource for mips/sparcv9
...
On MIPS and SPARC the RLIMIT kinds have different numbers than the other
architectures.
2021-11-16 20:36:50 +01:00
Ominitay
796687f156
Add chmod and chown
2021-11-15 20:04:55 -05:00
Andrew Kelley
46af3a320c
Merge pull request #10081 from hnakamur/lib_std_os_linux_io_uring_cancel
...
std.os.linux: Add cancel and io_uring_prep_cancel
2021-11-14 22:51:11 -05:00
Kenta Iwasaki
09c17acf02
io_uring: add poll_update
...
Add method from liburing to queue (but not submit) a SQE to update the
user data of an existing poll operation.
2021-11-14 13:56:41 -05:00
Hiroaki Nakamura
77d1d5839a
Use io_uring_prep_rw in io_uring_prep_cancel
...
follow liburing's API as closely as possible.
Signed-off-by: Hiroaki Nakamura <hnakamur@gmail.com>
2021-11-12 10:51:49 +09:00
Hiroaki Nakamura
2a54c2ff19
std.os.linux: Add cancel and io_uring_prep_cancel
...
Signed-off-by: Hiroaki Nakamura <hnakamur@gmail.com>
2021-11-12 10:51:49 +09:00
Jakub Konka
19e5663869
Merge pull request #9935 from g-w1/plan9-std
...
add plan9 support to std
2021-11-11 10:45:00 -08:00
Andrew Kelley
b521510cd4
Merge pull request #9853 from koachan/sparc64-unittests
...
SPARCv9: make more tests pass
2021-11-10 11:32:10 -05:00
Andrew Kelley
008b0ec5e5
std.Thread.Mutex: change API to lock() and unlock()
...
This is a breaking change. Before, usage looked like this:
```zig
const held = mutex.acquire();
defer held.release();
```
Now it looks like this:
```zig
mutex.lock();
defer mutex.unlock();
```
The `Held` type was an idea to make mutexes slightly safer by making it
more difficult to forget to release an aquired lock. However, this
ultimately caused more problems than it solved, when any data structures
needed to store a held mutex. Simplify everything by reducing the API
down to the primitives: lock() and unlock().
Closes #8051
Closes #8246
Closes #10105
2021-11-09 18:31:03 -07:00
Andrew Kelley
65e518e8e8
io_uring: skip statx test failure on older kernels
2021-11-09 18:31:03 -07:00
Vincent Rischmann
082072bd4f
os/linux/io_uring: implement statx
2021-11-09 13:35:17 -05:00
Jacob G-W
73be14027d
plan9: more syscalls
2021-11-09 07:08:27 -05:00
Jacob G-W
fe314e60bb
fix outputs in inline assembly
2021-11-09 07:08:27 -05:00
Jacob G-W
09992f8acc
add initial plan9 support to std
2021-11-09 07:08:23 -05:00
Andrew Kelley
a78e61acf9
std: expose rusage constants under rusage namespace
2021-11-01 15:55:22 -07:00
Andrew Kelley
63f4778827
std: add Linux perf syscall bits
...
Example usage:
```zig
const std = @import("std");
const PERF = std.os.linux.PERF;
const assert = std.debug.assert;
test "perf" {
var attr: std.os.linux.perf_event_attr = .{
.type = PERF.TYPE.HARDWARE,
.config = @enumToInt(PERF.COUNT.HW.INSTRUCTIONS),
.flags = .{
.disabled = true,
.exclude_kernel = true,
.exclude_hv = true,
},
};
const fd = try std.os.perf_event_open(&attr, 0, -1, -1, PERF.FLAG.FD_CLOEXEC);
defer std.os.close(fd);
_ = std.os.linux.ioctl(fd, PERF.EVENT_IOC.RESET, 0);
_ = std.os.linux.ioctl(fd, PERF.EVENT_IOC.ENABLE, 0);
long();
_ = std.os.linux.ioctl(fd, PERF.EVENT_IOC.DISABLE, 0);
var result: usize = 0;
assert((try std.os.read(fd, std.mem.asBytes(&result))) == @sizeOf(usize));
std.debug.print("instruction count: {d}\n", .{result});
}
fn long() void {
var i: usize = 0;
while (i < 100000) : (i += 1) {}
}
```
2021-11-01 14:45:05 -07:00
Stephen von Takach
a132190cad
fix(uefi MemoryDescriptor): padding after memory type
...
not 100% certain, just noticed that this is implemented slightly differently in rust
https://docs.rs/uefi/0.11.0/src/uefi/table/boot.rs.html#715
2021-10-25 16:43:23 -04:00
LemonBoy
1690b35770
std: Fix edge case in TLS tp calculation
...
The TLS area may be located in the upper part of the address space and,
if the platform expects a constant offset to be applied, may make the tp
register calculation overflow.
Use +% instead of +, the overflow is harmless.
2021-10-23 22:48:25 -04:00
Stephen Gregoratto
98a37dfb23
Linux: Update syscall numbers for 5.14
2021-10-17 14:22:47 -04:00
Sizhe Zhao
f3ab092f67
std.os.windows: Fix typo ( #9951 )
2021-10-15 14:44:05 +02:00
Koakuma
d7a5b12f94
SPARCv9: fix timeval definition
2021-10-10 09:13:18 +07:00
Koakuma
569802160e
Linux: fix socket constants for SPARCv9
2021-10-10 09:13:18 +07:00
Andrew Kelley
6115cf2240
migrate from std.Target.current to @import("builtin").target
...
closes #9388
closes #9321
2021-10-04 23:48:55 -07:00
Sreehari Sreedev
598db831f3
FileProtocol: add Reader, Writer, SeekableStream
2021-10-04 22:29:53 -04:00
Stephen Gregoratto
87fd502fb6
Initial bringup of the Solaris/Illumos port
2021-09-24 14:06:16 -04:00
Koakuma
bdbd060cc7
Linux/sparc64 bits: Add missing C type definitions
2021-09-23 13:57:55 -04:00
Vincent Rischmann
01f20c7f48
io_uring: implement read_fixed/write_fixed
2021-09-22 00:47:45 -04:00
HugoFlorentino
806aeab2a7
adding support for UTF-8 output
2021-09-20 02:05:52 -04:00
Jens Goldberg
d2b5105f54
Add Linux ioctl creation utilities ( #9748 )
...
* Add Linux ioctl creation utilities
* Apply suggestions from code review
Co-authored-by: Veikka Tuominen <git@vexu.eu>
* Update lib/std/os/linux.zig
Co-authored-by: zigazeljko <ziga.zeljko@gmail.com>
Co-authored-by: Veikka Tuominen <git@vexu.eu>
Co-authored-by: zigazeljko <ziga.zeljko@gmail.com>
2021-09-18 09:56:11 +03:00
Stephen Gregoratto
506f24cac2
Set the Storage socket sizes to be system defined
...
Some systems (Solaris, OpenBSD, AIX) change their definitions of
sockaddr_storage to be larger than 128 bytes. This comment adds a new
constant in the `sockaddr` that defines the size for every system.
Fixes #9759
2021-09-16 13:32:55 +03:00