From 9f9f215305389c08a21730859982b68bf2681932 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Sun, 19 Dec 2021 06:24:45 +0100 Subject: [PATCH] stage1, stage2: rename c_void to anyopaque (#10316) zig fmt now replaces c_void with anyopaque to make updating code easy. --- doc/docgen.zig | 8 +- doc/langref.html.in | 10 +- lib/std/Thread.zig | 8 +- lib/std/Thread/Futex.zig | 10 +- lib/std/Thread/StaticResetEvent.zig | 4 +- lib/std/c.zig | 56 ++++---- lib/std/c/darwin.zig | 32 ++--- lib/std/c/dragonfly.zig | 30 ++--- lib/std/c/freebsd.zig | 26 ++-- lib/std/c/haiku.zig | 20 +-- lib/std/c/linux.zig | 14 +- lib/std/c/netbsd.zig | 34 ++--- lib/std/c/openbsd.zig | 28 ++-- lib/std/c/solaris.zig | 40 +++--- lib/std/c/windows.zig | 2 +- lib/std/child_process.zig | 2 +- lib/std/crypto/tlcsprng.zig | 2 +- lib/std/debug.zig | 8 +- lib/std/dynamic_library.zig | 2 +- lib/std/fs/get_app_data_dir.zig | 2 +- lib/std/heap.zig | 36 ++--- lib/std/mem.zig | 6 +- lib/std/mem/Allocator.zig | 14 +- lib/std/os.zig | 14 +- lib/std/os/linux.zig | 24 ++-- lib/std/os/linux/arm-eabi.zig | 4 +- lib/std/os/linux/arm64.zig | 4 +- lib/std/os/linux/bpf/helpers.zig | 126 +++++++++--------- lib/std/os/linux/i386.zig | 4 +- lib/std/os/linux/io_uring.zig | 10 +- lib/std/os/linux/powerpc.zig | 4 +- lib/std/os/linux/powerpc64.zig | 6 +- lib/std/os/linux/sparc64.zig | 4 +- lib/std/os/linux/x86_64.zig | 4 +- lib/std/os/test.zig | 4 +- .../os/uefi/protocols/ip6_config_protocol.zig | 8 +- lib/std/os/uefi/protocols/ip6_protocol.zig | 2 +- .../uefi/protocols/loaded_image_protocol.zig | 4 +- .../protocols/managed_network_protocol.zig | 4 +- .../protocols/simple_network_protocol.zig | 4 +- .../simple_text_input_ex_protocol.zig | 8 +- lib/std/os/uefi/tables/boot_services.zig | 16 +-- .../os/uefi/tables/configuration_table.zig | 2 +- lib/std/os/uefi/tables/runtime_services.zig | 8 +- lib/std/os/windows.zig | 32 ++--- lib/std/os/windows/kernel32.zig | 20 +-- lib/std/os/windows/ntdll.zig | 32 ++--- lib/std/os/windows/user32.zig | 4 +- lib/std/os/windows/ws2_32.zig | 26 ++-- lib/std/rand.zig | 6 +- lib/std/special/compiler_rt/emutls.zig | 24 ++-- lib/std/start_windows_tls.zig | 8 +- lib/std/zig/c_builtins.zig | 22 +-- lib/std/zig/c_translation.zig | 24 ++-- lib/std/zig/parser_test.zig | 23 ++++ lib/std/zig/render.zig | 27 +++- src/AstGen.zig | 4 +- src/Sema.zig | 8 +- src/Zir.zig | 6 +- src/clang.zig | 12 +- src/crash_report.zig | 2 +- src/stage1/all_types.hpp | 2 +- src/stage1/codegen.cpp | 6 +- src/stage1/ir.cpp | 6 +- src/tracy.zig | 16 +-- src/translate_c.zig | 16 +-- src/type.zig | 26 ++-- src/value.zig | 10 +- test/behavior/async_fn.zig | 4 +- test/behavior/bugs/2578.zig | 2 +- test/behavior/cast_llvm.zig | 20 +-- test/behavior/ptrcast_stage1.zig | 4 +- test/behavior/translate_c_macros_stage1.zig | 2 +- test/behavior/type_info.zig | 6 +- test/compare_output.zig | 4 +- test/compile_errors.zig | 36 ++--- test/stage1/c_abi/main.zig | 6 +- test/translate_c.zig | 50 +++---- 78 files changed, 597 insertions(+), 557 deletions(-) diff --git a/doc/docgen.zig b/doc/docgen.zig index 29cb8bda5f..0afb723e57 100644 --- a/doc/docgen.zig +++ b/doc/docgen.zig @@ -853,10 +853,10 @@ fn termColor(allocator: Allocator, input: []const u8) ![]u8 { } const builtin_types = [_][]const u8{ - "f16", "f32", "f64", "f128", "c_longdouble", "c_short", - "c_ushort", "c_int", "c_uint", "c_long", "c_ulong", "c_longlong", - "c_ulonglong", "c_char", "c_void", "void", "bool", "isize", - "usize", "noreturn", "type", "anyerror", "comptime_int", "comptime_float", + "f16", "f32", "f64", "f128", "c_longdouble", "c_short", + "c_ushort", "c_int", "c_uint", "c_long", "c_ulong", "c_longlong", + "c_ulonglong", "c_char", "anyopaque", "void", "bool", "isize", + "usize", "noreturn", "type", "anyerror", "comptime_int", "comptime_float", }; fn isType(name: []const u8) bool { diff --git a/doc/langref.html.in b/doc/langref.html.in index b48db769cc..31395df538 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -720,11 +720,6 @@ pub fn main() void { long double for ABI compatibility with C - - {#syntax#}c_void{#endsyntax#} - void - for ABI compatibility with C - {#syntax#}f16{#endsyntax#} @@ -751,6 +746,11 @@ pub fn main() void { bool {#syntax#}true{#endsyntax#} or {#syntax#}false{#endsyntax#} + + {#syntax#}anyopaque{#endsyntax#} + void + Used for type-erased pointers. + {#syntax#}void{#endsyntax#} (none) diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 31e54f00d8..f2203e2808 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -344,7 +344,7 @@ const Completion = Atomic(enum(u8) { fn callFn(comptime f: anytype, args: anytype) switch (Impl) { WindowsThreadImpl => std.os.windows.DWORD, LinuxThreadImpl => u8, - PosixThreadImpl => ?*c_void, + PosixThreadImpl => ?*anyopaque, else => unreachable, } { const default_value = if (Impl == PosixThreadImpl) null else 0; @@ -499,7 +499,7 @@ const WindowsThreadImpl = struct { null, stack_size, Instance.entryFn, - @ptrCast(*c_void, instance), + @ptrCast(*anyopaque, instance), 0, null, ) orelse { @@ -621,7 +621,7 @@ const PosixThreadImpl = struct { const allocator = std.heap.c_allocator; const Instance = struct { - fn entryFn(raw_arg: ?*c_void) callconv(.C) ?*c_void { + fn entryFn(raw_arg: ?*anyopaque) callconv(.C) ?*anyopaque { // @alignCast() below doesn't support zero-sized-types (ZST) if (@sizeOf(Args) < 1) { return callFn(f, @as(Args, undefined)); @@ -651,7 +651,7 @@ const PosixThreadImpl = struct { &handle, &attr, Instance.entryFn, - if (@sizeOf(Args) > 1) @ptrCast(*c_void, args_ptr) else undefined, + if (@sizeOf(Args) > 1) @ptrCast(*anyopaque, args_ptr) else undefined, )) { .SUCCESS => return Impl{ .handle = handle }, .AGAIN => return error.SystemResources, diff --git a/lib/std/Thread/Futex.zig b/lib/std/Thread/Futex.zig index 0ecfdc0209..c9a19b4cd9 100644 --- a/lib/std/Thread/Futex.zig +++ b/lib/std/Thread/Futex.zig @@ -107,8 +107,8 @@ const WindowsFutex = struct { } switch (windows.ntdll.RtlWaitOnAddress( - @ptrCast(?*const c_void, ptr), - @ptrCast(?*const c_void, &expect), + @ptrCast(?*const anyopaque, ptr), + @ptrCast(?*const anyopaque, &expect), @sizeOf(@TypeOf(expect)), timeout_ptr, )) { @@ -119,7 +119,7 @@ const WindowsFutex = struct { } fn wake(ptr: *const Atomic(u32), num_waiters: u32) void { - const address = @ptrCast(?*const c_void, ptr); + const address = @ptrCast(?*const anyopaque, ptr); switch (num_waiters) { 1 => windows.ntdll.RtlWakeAddressSingle(address), else => windows.ntdll.RtlWakeAddressAll(address), @@ -189,7 +189,7 @@ const DarwinFutex = struct { assert(timeout_value != 0); timeout_ns = timeout_value; } - const addr = @ptrCast(*const c_void, ptr); + const addr = @ptrCast(*const anyopaque, ptr); const flags = darwin.UL_COMPARE_AND_WAIT | darwin.ULF_NO_ERRNO; // If we're using `__ulock_wait` and `timeout` is too big to fit inside a `u32` count of // micro-seconds (around 70min), we'll request a shorter timeout. This is fine (users @@ -228,7 +228,7 @@ const DarwinFutex = struct { } while (true) { - const addr = @ptrCast(*const c_void, ptr); + const addr = @ptrCast(*const anyopaque, ptr); const status = darwin.__ulock_wake(flags, addr, 0); if (status >= 0) return; diff --git a/lib/std/Thread/StaticResetEvent.zig b/lib/std/Thread/StaticResetEvent.zig index b115206632..80789cefec 100644 --- a/lib/std/Thread/StaticResetEvent.zig +++ b/lib/std/Thread/StaticResetEvent.zig @@ -229,7 +229,7 @@ pub const AtomicEvent = struct { pub const WindowsFutex = struct { pub fn wake(waiters: *u32, wake_count: u32) void { const handle = getEventHandle() orelse return SpinFutex.wake(waiters, wake_count); - const key = @ptrCast(*const c_void, waiters); + const key = @ptrCast(*const anyopaque, waiters); var waiting = wake_count; while (waiting != 0) : (waiting -= 1) { @@ -240,7 +240,7 @@ pub const AtomicEvent = struct { pub fn wait(waiters: *u32, timeout: ?u64) !void { const handle = getEventHandle() orelse return SpinFutex.wait(waiters, timeout); - const key = @ptrCast(*const c_void, waiters); + const key = @ptrCast(*const anyopaque, waiters); // NT uses timeouts in units of 100ns with negative value being relative var timeout_ptr: ?*windows.LARGE_INTEGER = null; diff --git a/lib/std/c.zig b/lib/std/c.zig index b5e8ed3896..9203232e6b 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -121,9 +121,9 @@ pub extern "c" fn writev(fd: c_int, iov: [*]const iovec_const, iovcnt: c_uint) i pub extern "c" fn pwritev(fd: c_int, iov: [*]const iovec_const, iovcnt: c_uint, offset: c.off_t) isize; pub extern "c" fn write(fd: c.fd_t, buf: [*]const u8, nbyte: usize) isize; pub extern "c" fn pwrite(fd: c.fd_t, buf: [*]const u8, nbyte: usize, offset: c.off_t) isize; -pub extern "c" fn mmap(addr: ?*align(page_size) c_void, len: usize, prot: c_uint, flags: c_uint, fd: c.fd_t, offset: c.off_t) *c_void; -pub extern "c" fn munmap(addr: *align(page_size) const c_void, len: usize) c_int; -pub extern "c" fn mprotect(addr: *align(page_size) c_void, len: usize, prot: c_uint) c_int; +pub extern "c" fn mmap(addr: ?*align(page_size) anyopaque, len: usize, prot: c_uint, flags: c_uint, fd: c.fd_t, offset: c.off_t) *anyopaque; +pub extern "c" fn munmap(addr: *align(page_size) const anyopaque, len: usize) c_int; +pub extern "c" fn mprotect(addr: *align(page_size) anyopaque, len: usize, prot: c_uint) c_int; pub extern "c" fn link(oldpath: [*:0]const u8, newpath: [*:0]const u8, flags: c_int) c_int; pub extern "c" fn linkat(oldfd: c.fd_t, oldpath: [*:0]const u8, newfd: c.fd_t, newpath: [*:0]const u8, flags: c_int) c_int; pub extern "c" fn unlink(path: [*:0]const u8) c_int; @@ -152,8 +152,8 @@ pub extern "c" fn fchown(fd: c.fd_t, owner: c.uid_t, group: c.gid_t) c_int; pub extern "c" fn rmdir(path: [*:0]const u8) c_int; pub extern "c" fn getenv(name: [*:0]const u8) ?[*:0]u8; -pub extern "c" fn sysctl(name: [*]const c_int, namelen: c_uint, oldp: ?*c_void, oldlenp: ?*usize, newp: ?*c_void, newlen: usize) c_int; -pub extern "c" fn sysctlbyname(name: [*:0]const u8, oldp: ?*c_void, oldlenp: ?*usize, newp: ?*c_void, newlen: usize) c_int; +pub extern "c" fn sysctl(name: [*]const c_int, namelen: c_uint, oldp: ?*anyopaque, oldlenp: ?*usize, newp: ?*anyopaque, newlen: usize) c_int; +pub extern "c" fn sysctlbyname(name: [*:0]const u8, oldp: ?*anyopaque, oldlenp: ?*usize, newp: ?*anyopaque, newlen: usize) c_int; pub extern "c" fn sysctlnametomib(name: [*:0]const u8, mibp: ?*c_int, sizep: ?*usize) c_int; pub extern "c" fn tcgetattr(fd: c.fd_t, termios_p: *c.termios) c_int; pub extern "c" fn tcsetattr(fd: c.fd_t, optional_action: c.TCSA, termios_p: *const c.termios) c_int; @@ -172,12 +172,12 @@ pub extern "c" fn getpeername(sockfd: c.fd_t, noalias addr: *c.sockaddr, noalias pub extern "c" fn connect(sockfd: c.fd_t, sock_addr: *const c.sockaddr, addrlen: c.socklen_t) c_int; pub extern "c" fn accept(sockfd: c.fd_t, noalias addr: ?*c.sockaddr, noalias addrlen: ?*c.socklen_t) c_int; pub extern "c" fn accept4(sockfd: c.fd_t, noalias addr: ?*c.sockaddr, noalias addrlen: ?*c.socklen_t, flags: c_uint) c_int; -pub extern "c" fn getsockopt(sockfd: c.fd_t, level: u32, optname: u32, noalias optval: ?*c_void, noalias optlen: *c.socklen_t) c_int; -pub extern "c" fn setsockopt(sockfd: c.fd_t, level: u32, optname: u32, optval: ?*const c_void, optlen: c.socklen_t) c_int; -pub extern "c" fn send(sockfd: c.fd_t, buf: *const c_void, len: usize, flags: u32) isize; +pub extern "c" fn getsockopt(sockfd: c.fd_t, level: u32, optname: u32, noalias optval: ?*anyopaque, noalias optlen: *c.socklen_t) c_int; +pub extern "c" fn setsockopt(sockfd: c.fd_t, level: u32, optname: u32, optval: ?*const anyopaque, optlen: c.socklen_t) c_int; +pub extern "c" fn send(sockfd: c.fd_t, buf: *const anyopaque, len: usize, flags: u32) isize; pub extern "c" fn sendto( sockfd: c.fd_t, - buf: *const c_void, + buf: *const anyopaque, len: usize, flags: u32, dest_addr: ?*const c.sockaddr, @@ -185,10 +185,10 @@ pub extern "c" fn sendto( ) isize; pub extern "c" fn sendmsg(sockfd: c.fd_t, msg: *const std.x.os.Socket.Message, flags: c_int) isize; -pub extern "c" fn recv(sockfd: c.fd_t, arg1: ?*c_void, arg2: usize, arg3: c_int) isize; +pub extern "c" fn recv(sockfd: c.fd_t, arg1: ?*anyopaque, arg2: usize, arg3: c_int) isize; pub extern "c" fn recvfrom( sockfd: c.fd_t, - noalias buf: *c_void, + noalias buf: *anyopaque, len: usize, flags: u32, noalias src_addr: ?*c.sockaddr, @@ -208,9 +208,9 @@ pub extern "c" fn setregid(rgid: c.gid_t, egid: c.gid_t) c_int; pub extern "c" fn setresuid(ruid: c.uid_t, euid: c.uid_t, suid: c.uid_t) c_int; pub extern "c" fn setresgid(rgid: c.gid_t, egid: c.gid_t, sgid: c.gid_t) c_int; -pub extern "c" fn malloc(usize) ?*c_void; -pub extern "c" fn realloc(?*c_void, usize) ?*c_void; -pub extern "c" fn free(?*c_void) void; +pub extern "c" fn malloc(usize) ?*anyopaque; +pub extern "c" fn realloc(?*anyopaque, usize) ?*anyopaque; +pub extern "c" fn free(?*anyopaque) void; pub extern "c" fn futimes(fd: c.fd_t, times: *[2]c.timeval) c_int; pub extern "c" fn utimes(path: [*:0]const u8, times: *[2]c.timeval) c_int; @@ -218,24 +218,24 @@ pub extern "c" fn utimes(path: [*:0]const u8, times: *[2]c.timeval) c_int; pub extern "c" fn utimensat(dirfd: c.fd_t, pathname: [*:0]const u8, times: *[2]c.timespec, flags: u32) c_int; pub extern "c" fn futimens(fd: c.fd_t, times: *const [2]c.timespec) c_int; -pub extern "c" fn pthread_create(noalias newthread: *pthread_t, noalias attr: ?*const c.pthread_attr_t, start_routine: fn (?*c_void) callconv(.C) ?*c_void, noalias arg: ?*c_void) c.E; +pub extern "c" fn pthread_create(noalias newthread: *pthread_t, noalias attr: ?*const c.pthread_attr_t, start_routine: fn (?*anyopaque) callconv(.C) ?*anyopaque, noalias arg: ?*anyopaque) c.E; pub extern "c" fn pthread_attr_init(attr: *c.pthread_attr_t) c.E; -pub extern "c" fn pthread_attr_setstack(attr: *c.pthread_attr_t, stackaddr: *c_void, stacksize: usize) c.E; +pub extern "c" fn pthread_attr_setstack(attr: *c.pthread_attr_t, stackaddr: *anyopaque, stacksize: usize) c.E; pub extern "c" fn pthread_attr_setstacksize(attr: *c.pthread_attr_t, stacksize: usize) c.E; pub extern "c" fn pthread_attr_setguardsize(attr: *c.pthread_attr_t, guardsize: usize) c.E; pub extern "c" fn pthread_attr_destroy(attr: *c.pthread_attr_t) c.E; pub extern "c" fn pthread_self() pthread_t; -pub extern "c" fn pthread_join(thread: pthread_t, arg_return: ?*?*c_void) c.E; +pub extern "c" fn pthread_join(thread: pthread_t, arg_return: ?*?*anyopaque) c.E; pub extern "c" fn pthread_detach(thread: pthread_t) c.E; pub extern "c" fn pthread_atfork( prepare: ?fn () callconv(.C) void, parent: ?fn () callconv(.C) void, child: ?fn () callconv(.C) void, ) c_int; -pub extern "c" fn pthread_key_create(key: *c.pthread_key_t, destructor: ?fn (value: *c_void) callconv(.C) void) c.E; +pub extern "c" fn pthread_key_create(key: *c.pthread_key_t, destructor: ?fn (value: *anyopaque) callconv(.C) void) c.E; pub extern "c" fn pthread_key_delete(key: c.pthread_key_t) c.E; -pub extern "c" fn pthread_getspecific(key: c.pthread_key_t) ?*c_void; -pub extern "c" fn pthread_setspecific(key: c.pthread_key_t, value: ?*c_void) c_int; +pub extern "c" fn pthread_getspecific(key: c.pthread_key_t) ?*anyopaque; +pub extern "c" fn pthread_setspecific(key: c.pthread_key_t, value: ?*anyopaque) c_int; pub extern "c" fn sem_init(sem: *c.sem_t, pshared: c_int, value: c_uint) c_int; pub extern "c" fn sem_destroy(sem: *c.sem_t) c_int; pub extern "c" fn sem_post(sem: *c.sem_t) c_int; @@ -260,16 +260,16 @@ pub extern "c" fn port_associate( source: u32, object: usize, events: u32, - user_var: ?*c_void, + user_var: ?*anyopaque, ) c_int; pub extern "c" fn port_dissociate(port: c.port_t, source: u32, object: usize) c_int; -pub extern "c" fn port_send(port: c.port_t, events: u32, user_var: ?*c_void) c_int; +pub extern "c" fn port_send(port: c.port_t, events: u32, user_var: ?*anyopaque) c_int; pub extern "c" fn port_sendn( ports: [*]c.port_t, errors: []u32, num_ports: u32, events: u32, - user_var: ?*c_void, + user_var: ?*anyopaque, ) c_int; pub extern "c" fn port_get(port: c.port_t, event: *c.port_event, timeout: ?*c.timespec) c_int; pub extern "c" fn port_getn( @@ -279,7 +279,7 @@ pub extern "c" fn port_getn( events_retrieved: *u32, timeout: ?*c.timespec, ) c_int; -pub extern "c" fn port_alert(port: c.port_t, flags: u32, events: u32, user_var: ?*c_void) c_int; +pub extern "c" fn port_alert(port: c.port_t, flags: u32, events: u32, user_var: ?*anyopaque) c_int; pub extern "c" fn getaddrinfo( noalias node: ?[*:0]const u8, @@ -336,9 +336,9 @@ pub extern "c" fn pthread_rwlock_unlock(rwl: *c.pthread_rwlock_t) callconv(.C) c pub const pthread_t = *opaque {}; pub const FILE = opaque {}; -pub extern "c" fn dlopen(path: [*:0]const u8, mode: c_int) ?*c_void; -pub extern "c" fn dlclose(handle: *c_void) c_int; -pub extern "c" fn dlsym(handle: ?*c_void, symbol: [*:0]const u8) ?*c_void; +pub extern "c" fn dlopen(path: [*:0]const u8, mode: c_int) ?*anyopaque; +pub extern "c" fn dlclose(handle: *anyopaque) c_int; +pub extern "c" fn dlsym(handle: ?*anyopaque, symbol: [*:0]const u8) ?*anyopaque; pub extern "c" fn sync() void; pub extern "c" fn syncfs(fd: c_int) c_int; @@ -350,7 +350,7 @@ pub extern "c" fn prctl(option: c_int, ...) c_int; pub extern "c" fn getrlimit(resource: c.rlimit_resource, rlim: *c.rlimit) c_int; pub extern "c" fn setrlimit(resource: c.rlimit_resource, rlim: *const c.rlimit) c_int; -pub extern "c" fn fmemopen(noalias buf: ?*c_void, size: usize, noalias mode: [*:0]const u8) ?*FILE; +pub extern "c" fn fmemopen(noalias buf: ?*anyopaque, size: usize, noalias mode: [*:0]const u8) ?*FILE; pub extern "c" fn syslog(priority: c_int, message: [*:0]const u8, ...) void; pub extern "c" fn openlog(ident: [*:0]const u8, logopt: c_int, facility: c_int) void; diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index f766f56b66..bfb805c36c 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -46,8 +46,8 @@ pub const fstatat = if (native_arch == .aarch64) private.fstatat else private.@" pub extern "c" fn mach_absolute_time() u64; pub extern "c" fn mach_timebase_info(tinfo: ?*mach_timebase_info_data) void; -pub extern "c" fn malloc_size(?*const c_void) usize; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; +pub extern "c" fn malloc_size(?*const anyopaque) usize; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub extern "c" fn kevent64( kq: c_int, @@ -196,7 +196,7 @@ pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void; // Grand Central Dispatch is exposed by libSystem. -pub extern "c" fn dispatch_release(object: *c_void) void; +pub extern "c" fn dispatch_release(object: *anyopaque) void; pub const dispatch_semaphore_t = *opaque {}; pub extern "c" fn dispatch_semaphore_create(value: isize) ?dispatch_semaphore_t; @@ -209,10 +209,10 @@ pub const DISPATCH_TIME_FOREVER = ~@as(dispatch_time_t, 0); pub extern "c" fn dispatch_time(when: dispatch_time_t, delta: i64) dispatch_time_t; const dispatch_once_t = usize; -const dispatch_function_t = fn (?*c_void) callconv(.C) void; +const dispatch_function_t = fn (?*anyopaque) callconv(.C) void; pub extern fn dispatch_once_f( predicate: *dispatch_once_t, - context: ?*c_void, + context: ?*anyopaque, function: dispatch_function_t, ) void; @@ -243,9 +243,9 @@ pub const UL_COMPARE_AND_WAIT64 = 5; pub const UL_COMPARE_AND_WAIT64_SHARED = 6; pub const ULF_WAIT_ADAPTIVE_SPIN = 0x40000; -pub extern "c" fn __ulock_wait2(op: u32, addr: ?*const c_void, val: u64, timeout_ns: u64, val2: u64) c_int; -pub extern "c" fn __ulock_wait(op: u32, addr: ?*const c_void, val: u64, timeout_us: u32) c_int; -pub extern "c" fn __ulock_wake(op: u32, addr: ?*const c_void, val: u64) c_int; +pub extern "c" fn __ulock_wait2(op: u32, addr: ?*const anyopaque, val: u64, timeout_ns: u64, val2: u64) c_int; +pub extern "c" fn __ulock_wait(op: u32, addr: ?*const anyopaque, val: u64, timeout_us: u32) c_int; +pub extern "c" fn __ulock_wake(op: u32, addr: ?*const anyopaque, val: u64) c_int; pub const OS_UNFAIR_LOCK_INIT = os_unfair_lock{}; pub const os_unfair_lock_t = *os_unfair_lock; @@ -483,10 +483,10 @@ pub const siginfo_t = extern struct { pid: pid_t, uid: uid_t, status: c_int, - addr: *c_void, + addr: *anyopaque, value: extern union { int: c_int, - ptr: *c_void, + ptr: *anyopaque, }, si_band: c_long, _pad: [7]c_ulong, @@ -495,7 +495,7 @@ pub const siginfo_t = extern struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with function name. pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; handler: extern union { handler: ?handler_fn, @@ -611,7 +611,7 @@ pub const MAP = struct { pub const NOCACHE = 0x0400; /// don't reserve needed swap area pub const NORESERVE = 0x0040; - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); }; pub const SA = struct { @@ -1537,10 +1537,10 @@ pub const RTLD = struct { pub const NODELETE = 0x80; pub const FIRST = 0x100; - pub const NEXT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -1))); - pub const DEFAULT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -2))); - pub const SELF = @intToPtr(*c_void, @bitCast(usize, @as(isize, -3))); - pub const MAIN_ONLY = @intToPtr(*c_void, @bitCast(usize, @as(isize, -5))); + pub const NEXT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1))); + pub const DEFAULT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -2))); + pub const SELF = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -3))); + pub const MAIN_ONLY = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -5))); }; pub const F = struct { diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index 737cb70f40..d43c8dd239 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -12,18 +12,18 @@ pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; pub extern "c" fn pipe2(fds: *[2]fd_t, flags: u32) c_int; -pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int; -pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; +pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; pub extern "c" fn lwp_gettid() c_int; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub const pthread_mutex_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_cond_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_attr_t = extern struct { // copied from freebsd @@ -165,7 +165,7 @@ pub const PROT = struct { pub const MAP = struct { pub const FILE = 0; - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); pub const ANONYMOUS = ANON; pub const COPY = PRIVATE; pub const SHARED = 1; @@ -648,7 +648,7 @@ pub const siginfo_t = extern struct { pid: c_int, uid: uid_t, status: c_int, - addr: ?*c_void, + addr: ?*anyopaque, value: sigval, band: c_long, __spare__: [7]c_int, @@ -656,7 +656,7 @@ pub const siginfo_t = extern struct { pub const sigval = extern union { sival_int: c_int, - sival_ptr: ?*c_void, + sival_ptr: ?*anyopaque, }; pub const _SIG_WORDS = 4; @@ -671,7 +671,7 @@ pub const sig_atomic_t = c_int; pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; /// signal handler handler: extern union { @@ -847,10 +847,10 @@ pub const RTLD = struct { pub const NODELETE = 0x01000; pub const NOLOAD = 0x02000; - pub const NEXT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -1))); - pub const DEFAULT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -2))); - pub const SELF = @intToPtr(*c_void, @bitCast(usize, @as(isize, -3))); - pub const ALL = @intToPtr(*c_void, @bitCast(usize, @as(isize, -4))); + pub const NEXT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1))); + pub const DEFAULT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -2))); + pub const SELF = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -3))); + pub const ALL = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -4))); }; pub const dl_phdr_info = extern struct { @@ -865,11 +865,11 @@ pub const cmsghdr = extern struct { cmsg_type: c_int, }; pub const msghdr = extern struct { - msg_name: ?*c_void, + msg_name: ?*anyopaque, msg_namelen: socklen_t, msg_iov: [*c]iovec, msg_iovlen: c_int, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, msg_flags: c_int, }; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index ecc9690069..a19ecd3bac 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -16,8 +16,8 @@ pub extern "c" fn pthread_set_name_np(thread: std.c.pthread_t, name: [*:0]const pub extern "c" fn pthread_get_name_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) void; pub extern "c" fn pipe2(fds: *[2]fd_t, flags: u32) c_int; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; -pub extern "c" fn malloc_usable_size(?*const c_void) usize; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; +pub extern "c" fn malloc_usable_size(?*const anyopaque) usize; pub const sf_hdtr = extern struct { headers: [*]const iovec_const, @@ -35,17 +35,17 @@ pub extern "c" fn sendfile( flags: u32, ) c_int; -pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int; -pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; +pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; pub const pthread_mutex_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_cond_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_rwlock_t = extern struct { - ptr: ?*c_void = null, + ptr: ?*anyopaque = null, }; pub const pthread_attr_t = extern struct { @@ -216,7 +216,7 @@ pub const msghdr = extern struct { msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -239,7 +239,7 @@ pub const msghdr_const = extern struct { msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -393,7 +393,7 @@ pub const CLOCK = struct { }; pub const MAP = struct { - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); pub const SHARED = 0x0001; pub const PRIVATE = 0x0002; pub const FIXED = 0x0010; @@ -515,7 +515,7 @@ pub const SIG = struct { }; pub const sigval = extern union { int: c_int, - ptr: ?*c_void, + ptr: ?*anyopaque, }; pub const sigset_t = extern struct { @@ -949,7 +949,7 @@ const NSIG = 32; /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; /// signal handler handler: extern union { @@ -971,7 +971,7 @@ pub const siginfo_t = extern struct { pid: pid_t, uid: uid_t, status: c_int, - addr: ?*c_void, + addr: ?*anyopaque, value: sigval, reason: extern union { fault: extern struct { diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index 1962d27381..5997855ea3 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -10,7 +10,7 @@ pub const _errno = _errnop; pub extern "c" fn find_directory(which: c_int, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) u64; -pub extern "c" fn find_thread(thread_name: ?*c_void) i32; +pub extern "c" fn find_thread(thread_name: ?*anyopaque) i32; pub extern "c" fn get_system_info(system_info: *system_info) usize; @@ -41,7 +41,7 @@ pub const pthread_attr_t = extern struct { __sched_priority: i32, __stack_size: i32, __guard_size: i32, - __stack_address: ?*c_void, + __stack_address: ?*anyopaque, }; pub const pthread_mutex_t = extern struct { @@ -55,7 +55,7 @@ pub const pthread_mutex_t = extern struct { pub const pthread_cond_t = extern struct { flags: u32 = 0, unused: i32 = -42, - mutex: ?*c_void = null, + mutex: ?*anyopaque = null, waiter_count: i32 = 0, lock: i32 = 0, }; @@ -180,7 +180,7 @@ pub const msghdr = extern struct { msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -262,7 +262,7 @@ pub const area_info = extern struct { copy_count: u32, in_count: u32, out_count: u32, - address: *c_void, + address: *anyopaque, }; pub const MAXPATHLEN = PATH_MAX; @@ -272,13 +272,13 @@ pub const image_info = extern struct { image_type: u32, sequence: i32, init_order: i32, - init_routine: *c_void, - term_routine: *c_void, + init_routine: *anyopaque, + term_routine: *anyopaque, device: i32, node: i64, name: [MAXPATHLEN]u8, - text: *c_void, - data: *c_void, + text: *anyopaque, + data: *anyopaque, text_size: i32, data_size: i32, api_version: i32, @@ -396,7 +396,7 @@ pub const CLOCK = struct { pub const MAP = struct { /// mmap() error return code - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); /// changes are seen by others pub const SHARED = 0x01; /// changes are only seen by caller diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index a4adb54402..c5047ef318 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -28,7 +28,7 @@ pub const MADV = linux.MADV; pub const MAP = struct { pub usingnamespace linux.MAP; /// Only used by libc to communicate failure. - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); }; pub const MMAP2_UNIT = linux.MMAP2_UNIT; pub const MSG = linux.MSG; @@ -228,7 +228,7 @@ pub extern "c" fn fstatat64(dirfd: fd_t, path: [*:0]const u8, stat_buf: *Stat, f pub extern "c" fn ftruncate64(fd: c_int, length: off_t) c_int; pub extern "c" fn getrlimit64(resource: rlimit_resource, rlim: *rlimit) c_int; pub extern "c" fn lseek64(fd: fd_t, offset: i64, whence: c_int) i64; -pub extern "c" fn mmap64(addr: ?*align(std.mem.page_size) c_void, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: i64) *c_void; +pub extern "c" fn mmap64(addr: ?*align(std.mem.page_size) anyopaque, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: i64) *anyopaque; pub extern "c" fn open64(path: [*:0]const u8, oflag: c_uint, ...) c_int; pub extern "c" fn openat64(fd: c_int, path: [*:0]const u8, oflag: c_uint, ...) c_int; pub extern "c" fn pread64(fd: fd_t, buf: [*]u8, nbyte: usize, offset: i64) isize; @@ -258,8 +258,8 @@ pub extern "c" fn inotify_rm_watch(fd: fd_t, wd: c_int) c_int; /// See std.elf for constants for this pub extern "c" fn getauxval(__type: c_ulong) c_ulong; -pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int; -pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; +pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; @@ -280,11 +280,11 @@ pub extern "c" fn copy_file_range(fd_in: fd_t, off_in: ?*i64, fd_out: fd_t, off_ pub extern "c" fn signalfd(fd: fd_t, mask: *const sigset_t, flags: c_uint) c_int; pub extern "c" fn prlimit(pid: pid_t, resource: rlimit_resource, new_limit: *const rlimit, old_limit: *rlimit) c_int; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; -pub extern "c" fn malloc_usable_size(?*const c_void) usize; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; +pub extern "c" fn malloc_usable_size(?*const anyopaque) usize; pub extern "c" fn madvise( - addr: *align(std.mem.page_size) c_void, + addr: *align(std.mem.page_size) anyopaque, length: usize, advice: c_uint, ) c_int; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 042d540bcc..4fbc7594b0 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -9,8 +9,8 @@ const rusage = std.c.rusage; extern "c" fn __errno() *c_int; pub const _errno = __errno; -pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int; -pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; +pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; pub extern "c" fn _lwp_self() lwpid_t; @@ -56,7 +56,7 @@ pub const getrusage = __getrusage50; pub extern "c" fn __libc_thr_yield() c_int; pub const sched_yield = __libc_thr_yield; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub const pthread_mutex_t = extern struct { magic: u32 = 0x33330003, @@ -65,7 +65,7 @@ pub const pthread_mutex_t = extern struct { owner: usize = 0, waiters: ?*u8 = null, recursed: u32 = 0, - spare2: ?*c_void = null, + spare2: ?*anyopaque = null, }; pub const pthread_cond_t = extern struct { @@ -74,7 +74,7 @@ pub const pthread_cond_t = extern struct { waiters_first: ?*u8 = null, waiters_last: ?*u8 = null, mutex: ?*pthread_mutex_t = null, - private: ?*c_void = null, + private: ?*anyopaque = null, }; pub const pthread_rwlock_t = extern struct { @@ -90,7 +90,7 @@ pub const pthread_rwlock_t = extern struct { wblocked_last: ?*u8 = null, nreaders: c_uint = 0, owner: std.c.pthread_t = null, - private: ?*c_void = null, + private: ?*anyopaque = null, }; const pthread_spin_t = switch (builtin.cpu.arch) { @@ -113,12 +113,12 @@ const padded_pthread_spin_t = switch (builtin.cpu.arch) { pub const pthread_attr_t = extern struct { pta_magic: u32, pta_flags: i32, - pta_private: ?*c_void, + pta_private: ?*anyopaque, }; pub const sem_t = ?*opaque {}; -pub extern "c" fn pthread_setname_np(thread: std.c.pthread_t, name: [*:0]const u8, arg: ?*c_void) E; +pub extern "c" fn pthread_setname_np(thread: std.c.pthread_t, name: [*:0]const u8, arg: ?*anyopaque) E; pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) E; pub const blkcnt_t = i64; @@ -156,9 +156,9 @@ pub const RTLD = struct { pub const NODELETE = 0x01000; pub const NOLOAD = 0x02000; - pub const NEXT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -1))); - pub const DEFAULT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -2))); - pub const SELF = @intToPtr(*c_void, @bitCast(usize, @as(isize, -3))); + pub const NEXT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1))); + pub const DEFAULT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -2))); + pub const SELF = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -3))); }; pub const dl_phdr_info = extern struct { @@ -249,7 +249,7 @@ pub const msghdr = extern struct { msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -272,7 +272,7 @@ pub const msghdr_const = extern struct { msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -556,7 +556,7 @@ pub const CLOCK = struct { }; pub const MAP = struct { - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); pub const SHARED = 0x0001; pub const PRIVATE = 0x0002; pub const REMAPDUP = 0x0004; @@ -962,7 +962,7 @@ pub const SIG = struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; /// signal handler handler: extern union { @@ -977,7 +977,7 @@ pub const Sigaction = extern struct { pub const sigval_t = extern union { int: i32, - ptr: ?*c_void, + ptr: ?*anyopaque, }; pub const siginfo_t = extern union { @@ -1005,7 +1005,7 @@ pub const _ksiginfo = extern struct { stime: clock_t, }, fault: extern struct { - addr: ?*c_void, + addr: ?*anyopaque, trap: i32, trap2: i32, trap3: i32, diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 98262be36d..4a41545e3f 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -7,8 +7,8 @@ const iovec_const = std.os.iovec_const; extern "c" fn __errno() *c_int; pub const _errno = __errno; -pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int; -pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; +pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void; @@ -19,25 +19,25 @@ pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) usize; pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; pub const pthread_mutex_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_cond_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_rwlock_t = extern struct { - ptr: ?*c_void = null, + ptr: ?*anyopaque = null, }; pub const pthread_spinlock_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_attr_t = extern struct { - inner: ?*c_void = null, + inner: ?*anyopaque = null, }; pub const pthread_key_t = c_int; pub const sem_t = ?*opaque {}; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub extern "c" fn pledge(promises: ?[*:0]const u8, execpromises: ?[*:0]const u8) c_int; pub extern "c" fn unveil(path: ?[*:0]const u8, permissions: ?[*:0]const u8) c_int; @@ -174,7 +174,7 @@ pub const msghdr = extern struct { msg_iovlen: c_uint, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -197,7 +197,7 @@ pub const msghdr_const = extern struct { msg_iovlen: c_uint, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, @@ -346,7 +346,7 @@ pub const CLOCK = struct { }; pub const MAP = struct { - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); pub const SHARED = 0x0001; pub const PRIVATE = 0x0002; pub const FIXED = 0x0010; @@ -889,7 +889,7 @@ pub const SIG = struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; /// signal handler handler: extern union { @@ -904,7 +904,7 @@ pub const Sigaction = extern struct { pub const sigval = extern union { int: c_int, - ptr: ?*c_void, + ptr: ?*anyopaque, }; pub const siginfo_t = extern struct { @@ -927,7 +927,7 @@ pub const siginfo_t = extern struct { }, }, fault: extern struct { - addr: ?*c_void, + addr: ?*anyopaque, trapno: c_int, }, __pad: [128 - 3 * @sizeOf(c_int)]u8, diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index cb745c804b..5abb34d2ff 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -8,14 +8,14 @@ const timezone = std.c.timezone; extern "c" fn ___errno() *c_int; pub const _errno = ___errno; -pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int; -pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; +pub const dl_iterate_phdr_callback = fn (info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*anyopaque) c_int; pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) usize; pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; pub extern "c" fn pipe2(fds: *[2]fd_t, flags: u32) c_int; pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void; -pub extern "c" fn posix_memalign(memptr: *?*c_void, alignment: usize, size: usize) c_int; +pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub extern "c" fn sysconf(sc: c_int) i64; pub extern "c" fn signalfd(fd: fd_t, mask: *const sigset_t, flags: u32) c_int; pub extern "c" fn madvise(address: [*]u8, len: usize, advise: u32) c_int; @@ -44,7 +44,7 @@ pub const pthread_rwlock_t = extern struct { writercv: pthread_cond_t = .{}, }; pub const pthread_attr_t = extern struct { - mutexattr: ?*c_void = null, + mutexattr: ?*anyopaque = null, }; pub const pthread_key_t = c_int; @@ -56,7 +56,7 @@ pub const sem_t = extern struct { __pad2: [2]u64 = [_]u64{0} ** 2, }; -pub extern "c" fn pthread_setname_np(thread: std.c.pthread_t, name: [*:0]const u8, arg: ?*c_void) E; +pub extern "c" fn pthread_setname_np(thread: std.c.pthread_t, name: [*:0]const u8, arg: ?*anyopaque) E; pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) E; pub const blkcnt_t = i64; @@ -109,10 +109,10 @@ pub const RTLD = struct { pub const FIRST = 0x02000; pub const CONFGEN = 0x10000; - pub const NEXT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -1))); - pub const DEFAULT = @intToPtr(*c_void, @bitCast(usize, @as(isize, -2))); - pub const SELF = @intToPtr(*c_void, @bitCast(usize, @as(isize, -3))); - pub const PROBE = @intToPtr(*c_void, @bitCast(usize, @as(isize, -4))); + pub const NEXT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1))); + pub const DEFAULT = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -2))); + pub const SELF = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -3))); + pub const PROBE = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -4))); }; pub const Flock = extern struct { @@ -189,7 +189,7 @@ pub const msghdr = extern struct { /// # elements in msg_iov msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, /// flags on received message @@ -206,7 +206,7 @@ pub const msghdr_const = extern struct { /// # elements in msg_iov msg_iovlen: i32, /// ancillary data - msg_control: ?*c_void, + msg_control: ?*anyopaque, /// ancillary data buffer len msg_controllen: socklen_t, /// flags on received message @@ -514,7 +514,7 @@ pub const CLOCK = struct { }; pub const MAP = struct { - pub const FAILED = @intToPtr(*c_void, maxInt(usize)); + pub const FAILED = @intToPtr(*anyopaque, maxInt(usize)); pub const SHARED = 0x0001; pub const PRIVATE = 0x0002; pub const TYPE = 0x000f; @@ -947,7 +947,7 @@ pub const SIG = struct { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; /// signal options flags: c_uint, @@ -962,7 +962,7 @@ pub const Sigaction = extern struct { pub const sigval_t = extern union { int: c_int, - ptr: ?*c_void, + ptr: ?*anyopaque, }; pub const siginfo_t = extern struct { @@ -989,9 +989,9 @@ pub const siginfo_t = extern struct { zone: zoneid_t, }, fault: extern struct { - addr: ?*c_void, + addr: ?*anyopaque, trapno: c_int, - pc: ?*c_void, + pc: ?*anyopaque, }, file: extern struct { // fd not currently available for SIGPOLL. @@ -999,7 +999,7 @@ pub const siginfo_t = extern struct { band: c_long, }, prof: extern struct { - addr: ?*c_void, + addr: ?*anyopaque, timestamp: timespec, syscall: c_short, sysarg: u8, @@ -1065,7 +1065,7 @@ pub const ucontext_t = extern struct { sigmask: sigset_t, stack: stack_t, mcontext: mcontext_t, - brand_data: [3]?*c_void, + brand_data: [3]?*anyopaque, filler: [2]i64, }; @@ -1783,9 +1783,9 @@ pub const port_event = extern struct { source: u16, __pad: u16, /// Source-specific object. - object: ?*c_void, + object: ?*anyopaque, /// User cookie. - cookie: ?*c_void, + cookie: ?*anyopaque, }; pub const port_notify = extern struct { diff --git a/lib/std/c/windows.zig b/lib/std/c/windows.zig index 1566e820fd..9980268869 100644 --- a/lib/std/c/windows.zig +++ b/lib/std/c/windows.zig @@ -5,7 +5,7 @@ const windows = std.os.windows; pub extern "c" fn _errno() *c_int; -pub extern "c" fn _msize(memblock: ?*c_void) usize; +pub extern "c" fn _msize(memblock: ?*anyopaque) usize; // TODO: copied the else case and removed the socket function (because its in ws2_32) // need to verify which of these is actually supported on windows diff --git a/lib/std/child_process.zig b/lib/std/child_process.zig index 13e14c7f34..7808dcd1e5 100644 --- a/lib/std/child_process.zig +++ b/lib/std/child_process.zig @@ -923,7 +923,7 @@ fn windowsCreateProcess(app_name: [*:0]u16, cmd_line: [*:0]u16, envp_ptr: ?[*]u1 null, windows.TRUE, windows.CREATE_UNICODE_ENVIRONMENT, - @ptrCast(?*c_void, envp_ptr), + @ptrCast(?*anyopaque, envp_ptr), cwd_ptr, lpStartupInfo, lpProcessInformation, diff --git a/lib/std/crypto/tlcsprng.zig b/lib/std/crypto/tlcsprng.zig index 883e585522..4d75e8c9c7 100644 --- a/lib/std/crypto/tlcsprng.zig +++ b/lib/std/crypto/tlcsprng.zig @@ -59,7 +59,7 @@ var install_atfork_handler = std.once(struct { threadlocal var wipe_mem: []align(mem.page_size) u8 = &[_]u8{}; -fn tlsCsprngFill(_: *c_void, buffer: []u8) void { +fn tlsCsprngFill(_: *anyopaque, buffer: []u8) void { if (builtin.link_libc and @hasDecl(std.c, "arc4random_buf")) { // arc4random is already a thread-local CSPRNG. return std.c.arc4random_buf(buffer.ptr, buffer.len); diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 1b4b5556df..6c09b71451 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -156,14 +156,14 @@ pub fn captureStackTrace(first_address: ?usize, stack_trace: *std.builtin.StackT stack_trace.index = windows.ntdll.RtlCaptureStackBackTrace( 0, u32_addrs_len, - @ptrCast(**c_void, addrs.ptr), + @ptrCast(**anyopaque, addrs.ptr), null, ); return; }; var addr_buf_stack: [32]usize = undefined; const addr_buf = if (addr_buf_stack.len > addrs.len) addr_buf_stack[0..] else addrs; - const n = windows.ntdll.RtlCaptureStackBackTrace(0, u32_addrs_len, @ptrCast(**c_void, addr_buf.ptr), null); + const n = windows.ntdll.RtlCaptureStackBackTrace(0, u32_addrs_len, @ptrCast(**anyopaque, addr_buf.ptr), null); const first_index = for (addr_buf[0..n]) |addr, i| { if (addr == first_addr) { break i; @@ -472,7 +472,7 @@ pub fn writeCurrentStackTraceWindows( start_addr: ?usize, ) !void { var addr_buf: [1024]usize = undefined; - const n = windows.ntdll.RtlCaptureStackBackTrace(0, addr_buf.len, @ptrCast(**c_void, &addr_buf), null); + const n = windows.ntdll.RtlCaptureStackBackTrace(0, addr_buf.len, @ptrCast(**anyopaque, &addr_buf), null); const addrs = addr_buf[0..n]; var start_i: usize = if (start_addr) |saddr| blk: { for (addrs) |addr, i| { @@ -1629,7 +1629,7 @@ fn resetSegfaultHandler() void { os.sigaction(os.SIG.BUS, &act, null); } -fn handleSegfaultLinux(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const c_void) callconv(.C) noreturn { +fn handleSegfaultLinux(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const anyopaque) callconv(.C) noreturn { // Reset to the default handler so that if a segfault happens in this handler it will crash // the process. Also when this handler returns, the original instruction will be repeated // and the resulting segfault will crash the process rather than continually dump stack traces. diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig index a0b98498dd..d9ebb0d1d5 100644 --- a/lib/std/dynamic_library.zig +++ b/lib/std/dynamic_library.zig @@ -357,7 +357,7 @@ pub const WindowsDynLib = struct { pub const DlDynlib = struct { pub const Error = error{FileNotFound}; - handle: *c_void, + handle: *anyopaque, pub fn open(path: []const u8) !DlDynlib { const path_c = try os.toPosixPath(path); diff --git a/lib/std/fs/get_app_data_dir.zig b/lib/std/fs/get_app_data_dir.zig index e2a9c5438f..a60e9e5c59 100644 --- a/lib/std/fs/get_app_data_dir.zig +++ b/lib/std/fs/get_app_data_dir.zig @@ -23,7 +23,7 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi &dir_path_ptr, )) { os.windows.S_OK => { - defer os.windows.ole32.CoTaskMemFree(@ptrCast(*c_void, dir_path_ptr)); + defer os.windows.ole32.CoTaskMemFree(@ptrCast(*anyopaque, dir_path_ptr)); const global_dir = unicode.utf16leToUtf8Alloc(allocator, mem.sliceTo(dir_path_ptr, 0)) catch |err| switch (err) { error.UnexpectedSecondSurrogateHalf => return error.AppDataDirUnavailable, error.ExpectedSecondSurrogateHalf => return error.AppDataDirUnavailable, diff --git a/lib/std/heap.zig b/lib/std/heap.zig index 4ea0ff718f..deb866fd61 100644 --- a/lib/std/heap.zig +++ b/lib/std/heap.zig @@ -58,7 +58,7 @@ const CAllocator = struct { // multiple of the pointer size const eff_alignment = std.math.max(alignment, @sizeOf(usize)); - var aligned_ptr: ?*c_void = undefined; + var aligned_ptr: ?*anyopaque = undefined; if (c.posix_memalign(&aligned_ptr, eff_alignment, len) != 0) return null; @@ -97,7 +97,7 @@ const CAllocator = struct { } fn alloc( - _: *c_void, + _: *anyopaque, len: usize, alignment: u29, len_align: u29, @@ -123,7 +123,7 @@ const CAllocator = struct { } fn resize( - _: *c_void, + _: *anyopaque, buf: []u8, buf_align: u29, new_len: usize, @@ -145,7 +145,7 @@ const CAllocator = struct { } fn free( - _: *c_void, + _: *anyopaque, buf: []u8, buf_align: u29, return_address: usize, @@ -185,7 +185,7 @@ const raw_c_allocator_vtable = Allocator.VTable{ }; fn rawCAlloc( - _: *c_void, + _: *anyopaque, len: usize, ptr_align: u29, len_align: u29, @@ -199,7 +199,7 @@ fn rawCAlloc( } fn rawCResize( - _: *c_void, + _: *anyopaque, buf: []u8, old_align: u29, new_len: usize, @@ -215,7 +215,7 @@ fn rawCResize( } fn rawCFree( - _: *c_void, + _: *anyopaque, buf: []u8, old_align: u29, ret_addr: usize, @@ -257,7 +257,7 @@ const PageAllocator = struct { .free = free, }; - fn alloc(_: *c_void, n: usize, alignment: u29, len_align: u29, ra: usize) error{OutOfMemory}![]u8 { + fn alloc(_: *anyopaque, n: usize, alignment: u29, len_align: u29, ra: usize) error{OutOfMemory}![]u8 { _ = ra; assert(n > 0); const aligned_len = mem.alignForward(n, mem.page_size); @@ -305,7 +305,7 @@ const PageAllocator = struct { // VirtualAlloc call to fail. To handle this, we will retry // until it succeeds. const ptr = w.VirtualAlloc( - @intToPtr(*c_void, aligned_addr), + @intToPtr(*anyopaque, aligned_addr), aligned_len, w.MEM_COMMIT | w.MEM_RESERVE, w.PAGE_READWRITE, @@ -355,7 +355,7 @@ const PageAllocator = struct { } fn resize( - _: *c_void, + _: *anyopaque, buf_unaligned: []u8, buf_align: u29, new_size: usize, @@ -376,7 +376,7 @@ const PageAllocator = struct { // For shrinking that is not releasing, we will only // decommit the pages not needed anymore. w.VirtualFree( - @intToPtr(*c_void, new_addr_end), + @intToPtr(*anyopaque, new_addr_end), old_addr_end - new_addr_end, w.MEM_DECOMMIT, ); @@ -406,7 +406,7 @@ const PageAllocator = struct { return null; } - fn free(_: *c_void, buf_unaligned: []u8, buf_align: u29, return_address: usize) void { + fn free(_: *anyopaque, buf_unaligned: []u8, buf_align: u29, return_address: usize) void { _ = buf_align; _ = return_address; @@ -518,7 +518,7 @@ const WasmPageAllocator = struct { return mem.alignForward(memsize, mem.page_size) / mem.page_size; } - fn alloc(_: *c_void, len: usize, alignment: u29, len_align: u29, ra: usize) error{OutOfMemory}![]u8 { + fn alloc(_: *anyopaque, len: usize, alignment: u29, len_align: u29, ra: usize) error{OutOfMemory}![]u8 { _ = ra; const page_count = nPages(len); const page_idx = try allocPages(page_count, alignment); @@ -573,7 +573,7 @@ const WasmPageAllocator = struct { } fn resize( - _: *c_void, + _: *anyopaque, buf: []u8, buf_align: u29, new_len: usize, @@ -594,7 +594,7 @@ const WasmPageAllocator = struct { } fn free( - _: *c_void, + _: *anyopaque, buf: []u8, buf_align: u29, return_address: usize, @@ -684,10 +684,10 @@ pub const HeapAllocator = switch (builtin.os.tag) { const new_ptr = os.windows.kernel32.HeapReAlloc( self.heap_handle.?, os.windows.HEAP_REALLOC_IN_PLACE_ONLY, - @intToPtr(*c_void, root_addr), + @intToPtr(*anyopaque, root_addr), amt, ) orelse return null; - assert(new_ptr == @intToPtr(*c_void, root_addr)); + assert(new_ptr == @intToPtr(*anyopaque, root_addr)); const return_len = init: { if (len_align == 0) break :init new_size; const full_len = os.windows.kernel32.HeapSize(self.heap_handle.?, 0, new_ptr); @@ -707,7 +707,7 @@ pub const HeapAllocator = switch (builtin.os.tag) { ) void { _ = buf_align; _ = return_address; - os.windows.HeapFree(self.heap_handle.?, 0, @intToPtr(*c_void, getRecordPtr(buf).*)); + os.windows.HeapFree(self.heap_handle.?, 0, @intToPtr(*anyopaque, getRecordPtr(buf).*)); } }, else => @compileError("Unsupported OS"), diff --git a/lib/std/mem.zig b/lib/std/mem.zig index c310835b61..dc6b4bcd4c 100644 --- a/lib/std/mem.zig +++ b/lib/std/mem.zig @@ -151,11 +151,11 @@ const fail_allocator = Allocator{ const failAllocator_vtable = Allocator.VTable{ .alloc = failAllocatorAlloc, - .resize = Allocator.NoResize(c_void).noResize, - .free = Allocator.NoOpFree(c_void).noOpFree, + .resize = Allocator.NoResize(anyopaque).noResize, + .free = Allocator.NoOpFree(anyopaque).noOpFree, }; -fn failAllocatorAlloc(_: *c_void, n: usize, alignment: u29, len_align: u29, ra: usize) Allocator.Error![]u8 { +fn failAllocatorAlloc(_: *anyopaque, n: usize, alignment: u29, len_align: u29, ra: usize) Allocator.Error![]u8 { _ = n; _ = alignment; _ = len_align; diff --git a/lib/std/mem/Allocator.zig b/lib/std/mem/Allocator.zig index 7960581b0f..593087dcb6 100644 --- a/lib/std/mem/Allocator.zig +++ b/lib/std/mem/Allocator.zig @@ -10,7 +10,7 @@ const builtin = @import("builtin"); pub const Error = error{OutOfMemory}; // The type erased pointer to the allocator implementation -ptr: *c_void, +ptr: *anyopaque, vtable: *const VTable, pub const VTable = struct { @@ -23,7 +23,7 @@ pub const VTable = struct { /// /// `ret_addr` is optionally provided as the first return address of the allocation call stack. /// If the value is `0` it means no return address has been provided. - alloc: fn (ptr: *c_void, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) Error![]u8, + alloc: fn (ptr: *anyopaque, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) Error![]u8, /// Attempt to expand or shrink memory in place. `buf.len` must equal the most recent /// length returned by `alloc` or `resize`. `buf_align` must equal the same value @@ -42,14 +42,14 @@ pub const VTable = struct { /// /// `ret_addr` is optionally provided as the first return address of the allocation call stack. /// If the value is `0` it means no return address has been provided. - resize: fn (ptr: *c_void, buf: []u8, buf_align: u29, new_len: usize, len_align: u29, ret_addr: usize) ?usize, + resize: fn (ptr: *anyopaque, buf: []u8, buf_align: u29, new_len: usize, len_align: u29, ret_addr: usize) ?usize, /// Free and invalidate a buffer. `buf.len` must equal the most recent length returned by `alloc` or `resize`. /// `buf_align` must equal the same value that was passed as the `ptr_align` parameter to the original `alloc` call. /// /// `ret_addr` is optionally provided as the first return address of the allocation call stack. /// If the value is `0` it means no return address has been provided. - free: fn (ptr: *c_void, buf: []u8, buf_align: u29, ret_addr: usize) void, + free: fn (ptr: *anyopaque, buf: []u8, buf_align: u29, ret_addr: usize) void, }; pub fn init( @@ -67,16 +67,16 @@ pub fn init( const alignment = ptr_info.Pointer.alignment; const gen = struct { - fn allocImpl(ptr: *c_void, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) Error![]u8 { + fn allocImpl(ptr: *anyopaque, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) Error![]u8 { const self = @ptrCast(Ptr, @alignCast(alignment, ptr)); return @call(.{ .modifier = .always_inline }, allocFn, .{ self, len, ptr_align, len_align, ret_addr }); } - fn resizeImpl(ptr: *c_void, buf: []u8, buf_align: u29, new_len: usize, len_align: u29, ret_addr: usize) ?usize { + fn resizeImpl(ptr: *anyopaque, buf: []u8, buf_align: u29, new_len: usize, len_align: u29, ret_addr: usize) ?usize { assert(new_len != 0); const self = @ptrCast(Ptr, @alignCast(alignment, ptr)); return @call(.{ .modifier = .always_inline }, resizeFn, .{ self, buf, buf_align, new_len, len_align, ret_addr }); } - fn freeImpl(ptr: *c_void, buf: []u8, buf_align: u29, ret_addr: usize) void { + fn freeImpl(ptr: *anyopaque, buf: []u8, buf_align: u29, ret_addr: usize) void { const self = @ptrCast(Ptr, @alignCast(alignment, ptr)); @call(.{ .modifier = .always_inline }, freeFn, .{ self, buf, buf_align, ret_addr }); } diff --git a/lib/std/os.zig b/lib/std/os.zig index 91a1657c67..e16a660741 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -2904,7 +2904,7 @@ pub fn isCygwinPty(handle: fd_t) bool { if (windows.kernel32.GetFileInformationByHandleEx( handle, windows.FileNameInfo, - @ptrCast(*c_void, &name_info_bytes), + @ptrCast(*anyopaque, &name_info_bytes), name_info_bytes.len, ) == 0) { return false; @@ -4236,9 +4236,9 @@ pub const SysCtlError = error{ pub fn sysctl( name: []const c_int, - oldp: ?*c_void, + oldp: ?*anyopaque, oldlenp: ?*usize, - newp: ?*c_void, + newp: ?*anyopaque, newlen: usize, ) SysCtlError!void { if (builtin.os.tag == .wasi) { @@ -4261,9 +4261,9 @@ pub fn sysctl( pub fn sysctlbynameZ( name: [*:0]const u8, - oldp: ?*c_void, + oldp: ?*anyopaque, oldlenp: ?*usize, - newp: ?*c_void, + newp: ?*anyopaque, newlen: usize, ) SysCtlError!void { if (builtin.os.tag == .wasi) { @@ -4801,12 +4801,12 @@ pub fn dl_iterate_phdr( if (builtin.link_libc) { switch (system.dl_iterate_phdr(struct { - fn callbackC(info: *dl_phdr_info, size: usize, data: ?*c_void) callconv(.C) c_int { + fn callbackC(info: *dl_phdr_info, size: usize, data: ?*anyopaque) callconv(.C) c_int { const context_ptr = @ptrCast(*const Context, @alignCast(@alignOf(*const Context), data)); callback(info, size, context_ptr.*) catch |err| return @errorToInt(err); return 0; } - }.callbackC, @intToPtr(?*c_void, @ptrToInt(&context)))) { + }.callbackC, @intToPtr(?*anyopaque, @ptrToInt(&context)))) { 0 => return, else => |err| return @errSetCast(Error, @intToError(@intCast(u16, err))), // TODO don't hardcode u16 } diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index e46761aa1c..9548f9afb0 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -845,14 +845,14 @@ pub fn flock(fd: fd_t, operation: i32) usize { return syscall2(.flock, @bitCast(usize, @as(isize, fd)), @bitCast(usize, @as(isize, operation))); } -var vdso_clock_gettime = @ptrCast(?*const c_void, init_vdso_clock_gettime); +var vdso_clock_gettime = @ptrCast(?*const anyopaque, init_vdso_clock_gettime); // We must follow the C calling convention when we call into the VDSO const vdso_clock_gettime_ty = fn (i32, *timespec) callconv(.C) usize; pub fn clock_gettime(clk_id: i32, tp: *timespec) usize { if (@hasDecl(VDSO, "CGT_SYM")) { - const ptr = @atomicLoad(?*const c_void, &vdso_clock_gettime, .Unordered); + const ptr = @atomicLoad(?*const anyopaque, &vdso_clock_gettime, .Unordered); if (ptr) |fn_ptr| { const f = @ptrCast(vdso_clock_gettime_ty, fn_ptr); const rc = f(clk_id, tp); @@ -866,10 +866,10 @@ pub fn clock_gettime(clk_id: i32, tp: *timespec) usize { } fn init_vdso_clock_gettime(clk: i32, ts: *timespec) callconv(.C) usize { - const ptr = @intToPtr(?*const c_void, vdso.lookup(VDSO.CGT_VER, VDSO.CGT_SYM)); + const ptr = @intToPtr(?*const anyopaque, vdso.lookup(VDSO.CGT_VER, VDSO.CGT_SYM)); // Note that we may not have a VDSO at all, update the stub address anyway // so that clock_gettime will fall back on the good old (and slow) syscall - @atomicStore(?*const c_void, &vdso_clock_gettime, ptr, .Monotonic); + @atomicStore(?*const anyopaque, &vdso_clock_gettime, ptr, .Monotonic); // Call into the VDSO if available if (ptr) |fn_ptr| { const f = @ptrCast(vdso_clock_gettime_ty, fn_ptr); @@ -1180,7 +1180,7 @@ pub fn sendmmsg(fd: i32, msgvec: [*]mmsghdr_const, vlen: u32, flags: u32) usize return syscall4(.sendmmsg, @bitCast(usize, @as(isize, fd)), @ptrToInt(msgvec), vlen, flags); } -pub fn connect(fd: i32, addr: *const c_void, len: socklen_t) usize { +pub fn connect(fd: i32, addr: *const anyopaque, len: socklen_t) usize { if (native_arch == .i386) { return socketcall(SC.connect, &[3]usize{ @bitCast(usize, @as(isize, fd)), @ptrToInt(addr), len }); } @@ -1452,7 +1452,7 @@ pub fn io_uring_enter(fd: i32, to_submit: u32, min_complete: u32, flags: u32, si return syscall6(.io_uring_enter, @bitCast(usize, @as(isize, fd)), to_submit, min_complete, flags, @ptrToInt(sig), NSIG / 8); } -pub fn io_uring_register(fd: i32, opcode: IORING_REGISTER, arg: ?*const c_void, nr_args: u32) usize { +pub fn io_uring_register(fd: i32, opcode: IORING_REGISTER, arg: ?*const anyopaque, nr_args: u32) usize { return syscall4(.io_uring_register, @bitCast(usize, @as(isize, fd)), @enumToInt(opcode), @ptrToInt(arg), nr_args); } @@ -3045,7 +3045,7 @@ pub const k_sigaction = switch (native_arch) { /// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. pub const Sigaction = extern struct { pub const handler_fn = fn (c_int) callconv(.C) void; - pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const c_void) callconv(.C) void; + pub const sigaction_fn = fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void; handler: extern union { handler: ?handler_fn, @@ -3342,7 +3342,7 @@ else pub const sigval = extern union { int: i32, - ptr: *c_void, + ptr: *anyopaque, }; const siginfo_fields_union = extern union { @@ -3368,12 +3368,12 @@ const siginfo_fields_union = extern union { }, }, sigfault: extern struct { - addr: *c_void, + addr: *anyopaque, addr_lsb: i16, first: extern union { addr_bnd: extern struct { - lower: *c_void, - upper: *c_void, + lower: *anyopaque, + upper: *anyopaque, }, pkey: u32, }, @@ -3383,7 +3383,7 @@ const siginfo_fields_union = extern union { fd: i32, }, sigsys: extern struct { - call_addr: *c_void, + call_addr: *anyopaque, syscall: i32, native_arch: u32, }, diff --git a/lib/std/os/linux/arm-eabi.zig b/lib/std/os/linux/arm-eabi.zig index 39f7118338..852f6e9283 100644 --- a/lib/std/os/linux/arm-eabi.zig +++ b/lib/std/os/linux/arm-eabi.zig @@ -652,7 +652,7 @@ pub const msghdr = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec, msg_iovlen: i32, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, msg_flags: i32, }; @@ -662,7 +662,7 @@ pub const msghdr_const = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec_const, msg_iovlen: i32, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, msg_flags: i32, }; diff --git a/lib/std/os/linux/arm64.zig b/lib/std/os/linux/arm64.zig index 506221b41a..16e3b897de 100644 --- a/lib/std/os/linux/arm64.zig +++ b/lib/std/os/linux/arm64.zig @@ -504,7 +504,7 @@ pub const msghdr = extern struct { msg_iov: [*]iovec, msg_iovlen: i32, __pad1: i32 = 0, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, __pad2: socklen_t = 0, msg_flags: i32, @@ -516,7 +516,7 @@ pub const msghdr_const = extern struct { msg_iov: [*]iovec_const, msg_iovlen: i32, __pad1: i32 = 0, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, __pad2: socklen_t = 0, msg_flags: i32, diff --git a/lib/std/os/linux/bpf/helpers.zig b/lib/std/os/linux/bpf/helpers.zig index 3b0df9673c..720af2ddf9 100644 --- a/lib/std/os/linux/bpf/helpers.zig +++ b/lib/std/os/linux/bpf/helpers.zig @@ -11,22 +11,22 @@ const SkFullSock = @compileError("TODO missing os bits: SkFullSock"); // // Note, these function signatures were created from documentation found in // '/usr/include/linux/bpf.h' -pub const map_lookup_elem = @intToPtr(fn (map: *const kern.MapDef, key: ?*const c_void) ?*c_void, 1); -pub const map_update_elem = @intToPtr(fn (map: *const kern.MapDef, key: ?*const c_void, value: ?*const c_void, flags: u64) c_long, 2); -pub const map_delete_elem = @intToPtr(fn (map: *const kern.MapDef, key: ?*const c_void) c_long, 3); -pub const probe_read = @intToPtr(fn (dst: ?*c_void, size: u32, unsafe_ptr: ?*const c_void) c_long, 4); +pub const map_lookup_elem = @intToPtr(fn (map: *const kern.MapDef, key: ?*const anyopaque) ?*anyopaque, 1); +pub const map_update_elem = @intToPtr(fn (map: *const kern.MapDef, key: ?*const anyopaque, value: ?*const anyopaque, flags: u64) c_long, 2); +pub const map_delete_elem = @intToPtr(fn (map: *const kern.MapDef, key: ?*const anyopaque) c_long, 3); +pub const probe_read = @intToPtr(fn (dst: ?*anyopaque, size: u32, unsafe_ptr: ?*const anyopaque) c_long, 4); pub const ktime_get_ns = @intToPtr(fn () u64, 5); pub const trace_printk = @intToPtr(fn (fmt: [*:0]const u8, fmt_size: u32, arg1: u64, arg2: u64, arg3: u64) c_long, 6); pub const get_prandom_u32 = @intToPtr(fn () u32, 7); pub const get_smp_processor_id = @intToPtr(fn () u32, 8); -pub const skb_store_bytes = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, from: ?*const c_void, len: u32, flags: u64) c_long, 9); +pub const skb_store_bytes = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, from: ?*const anyopaque, len: u32, flags: u64) c_long, 9); pub const l3_csum_replace = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, from: u64, to: u64, size: u64) c_long, 10); pub const l4_csum_replace = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, from: u64, to: u64, flags: u64) c_long, 11); -pub const tail_call = @intToPtr(fn (ctx: ?*c_void, prog_array_map: *const kern.MapDef, index: u32) c_long, 12); +pub const tail_call = @intToPtr(fn (ctx: ?*anyopaque, prog_array_map: *const kern.MapDef, index: u32) c_long, 12); pub const clone_redirect = @intToPtr(fn (skb: *kern.SkBuff, ifindex: u32, flags: u64) c_long, 13); pub const get_current_pid_tgid = @intToPtr(fn () u64, 14); pub const get_current_uid_gid = @intToPtr(fn () u64, 15); -pub const get_current_comm = @intToPtr(fn (buf: ?*c_void, size_of_buf: u32) c_long, 16); +pub const get_current_comm = @intToPtr(fn (buf: ?*anyopaque, size_of_buf: u32) c_long, 16); pub const get_cgroup_classid = @intToPtr(fn (skb: *kern.SkBuff) u32, 17); // Note vlan_proto is big endian pub const skb_vlan_push = @intToPtr(fn (skb: *kern.SkBuff, vlan_proto: u16, vlan_tci: u16) c_long, 18); @@ -36,20 +36,20 @@ pub const skb_set_tunnel_key = @intToPtr(fn (skb: *kern.SkBuff, key: *kern.Tunne pub const perf_event_read = @intToPtr(fn (map: *const kern.MapDef, flags: u64) u64, 22); pub const redirect = @intToPtr(fn (ifindex: u32, flags: u64) c_long, 23); pub const get_route_realm = @intToPtr(fn (skb: *kern.SkBuff) u32, 24); -pub const perf_event_output = @intToPtr(fn (ctx: ?*c_void, map: *const kern.MapDef, flags: u64, data: ?*c_void, size: u64) c_long, 25); -pub const skb_load_bytes = @intToPtr(fn (skb: ?*c_void, offset: u32, to: ?*c_void, len: u32) c_long, 26); -pub const get_stackid = @intToPtr(fn (ctx: ?*c_void, map: *const kern.MapDef, flags: u64) c_long, 27); +pub const perf_event_output = @intToPtr(fn (ctx: ?*anyopaque, map: *const kern.MapDef, flags: u64, data: ?*anyopaque, size: u64) c_long, 25); +pub const skb_load_bytes = @intToPtr(fn (skb: ?*anyopaque, offset: u32, to: ?*anyopaque, len: u32) c_long, 26); +pub const get_stackid = @intToPtr(fn (ctx: ?*anyopaque, map: *const kern.MapDef, flags: u64) c_long, 27); // from and to point to __be32 pub const csum_diff = @intToPtr(fn (from: *u32, from_size: u32, to: *u32, to_size: u32, seed: u32) i64, 28); -pub const skb_get_tunnel_opt = @intToPtr(fn (skb: *kern.SkBuff, opt: ?*c_void, size: u32) c_long, 29); -pub const skb_set_tunnel_opt = @intToPtr(fn (skb: *kern.SkBuff, opt: ?*c_void, size: u32) c_long, 30); +pub const skb_get_tunnel_opt = @intToPtr(fn (skb: *kern.SkBuff, opt: ?*anyopaque, size: u32) c_long, 29); +pub const skb_set_tunnel_opt = @intToPtr(fn (skb: *kern.SkBuff, opt: ?*anyopaque, size: u32) c_long, 30); // proto is __be16 pub const skb_change_proto = @intToPtr(fn (skb: *kern.SkBuff, proto: u16, flags: u64) c_long, 31); pub const skb_change_type = @intToPtr(fn (skb: *kern.SkBuff, skb_type: u32) c_long, 32); -pub const skb_under_cgroup = @intToPtr(fn (skb: *kern.SkBuff, map: ?*const c_void, index: u32) c_long, 33); +pub const skb_under_cgroup = @intToPtr(fn (skb: *kern.SkBuff, map: ?*const anyopaque, index: u32) c_long, 33); pub const get_hash_recalc = @intToPtr(fn (skb: *kern.SkBuff) u32, 34); pub const get_current_task = @intToPtr(fn () u64, 35); -pub const probe_write_user = @intToPtr(fn (dst: ?*c_void, src: ?*const c_void, len: u32) c_long, 36); +pub const probe_write_user = @intToPtr(fn (dst: ?*anyopaque, src: ?*const anyopaque, len: u32) c_long, 36); pub const current_task_under_cgroup = @intToPtr(fn (map: *const kern.MapDef, index: u32) c_long, 37); pub const skb_change_tail = @intToPtr(fn (skb: *kern.SkBuff, len: u32, flags: u64) c_long, 38); pub const skb_pull_data = @intToPtr(fn (skb: *kern.SkBuff, len: u32) c_long, 39); @@ -58,19 +58,19 @@ pub const set_hash_invalid = @intToPtr(fn (skb: *kern.SkBuff) void, 41); pub const get_numa_node_id = @intToPtr(fn () c_long, 42); pub const skb_change_head = @intToPtr(fn (skb: *kern.SkBuff, len: u32, flags: u64) c_long, 43); pub const xdp_adjust_head = @intToPtr(fn (xdp_md: *kern.XdpMd, delta: c_int) c_long, 44); -pub const probe_read_str = @intToPtr(fn (dst: ?*c_void, size: u32, unsafe_ptr: ?*const c_void) c_long, 45); -pub const get_socket_cookie = @intToPtr(fn (ctx: ?*c_void) u64, 46); +pub const probe_read_str = @intToPtr(fn (dst: ?*anyopaque, size: u32, unsafe_ptr: ?*const anyopaque) c_long, 45); +pub const get_socket_cookie = @intToPtr(fn (ctx: ?*anyopaque) u64, 46); pub const get_socket_uid = @intToPtr(fn (skb: *kern.SkBuff) u32, 47); pub const set_hash = @intToPtr(fn (skb: *kern.SkBuff, hash: u32) c_long, 48); -pub const setsockopt = @intToPtr(fn (bpf_socket: *kern.SockOps, level: c_int, optname: c_int, optval: ?*c_void, optlen: c_int) c_long, 49); +pub const setsockopt = @intToPtr(fn (bpf_socket: *kern.SockOps, level: c_int, optname: c_int, optval: ?*anyopaque, optlen: c_int) c_long, 49); pub const skb_adjust_room = @intToPtr(fn (skb: *kern.SkBuff, len_diff: i32, mode: u32, flags: u64) c_long, 50); pub const redirect_map = @intToPtr(fn (map: *const kern.MapDef, key: u32, flags: u64) c_long, 51); pub const sk_redirect_map = @intToPtr(fn (skb: *kern.SkBuff, map: *const kern.MapDef, key: u32, flags: u64) c_long, 52); -pub const sock_map_update = @intToPtr(fn (skops: *kern.SockOps, map: *const kern.MapDef, key: ?*c_void, flags: u64) c_long, 53); +pub const sock_map_update = @intToPtr(fn (skops: *kern.SockOps, map: *const kern.MapDef, key: ?*anyopaque, flags: u64) c_long, 53); pub const xdp_adjust_meta = @intToPtr(fn (xdp_md: *kern.XdpMd, delta: c_int) c_long, 54); pub const perf_event_read_value = @intToPtr(fn (map: *const kern.MapDef, flags: u64, buf: *kern.PerfEventValue, buf_size: u32) c_long, 55); pub const perf_prog_read_value = @intToPtr(fn (ctx: *kern.PerfEventData, buf: *kern.PerfEventValue, buf_size: u32) c_long, 56); -pub const getsockopt = @intToPtr(fn (bpf_socket: ?*c_void, level: c_int, optname: c_int, optval: ?*c_void, optlen: c_int) c_long, 57); +pub const getsockopt = @intToPtr(fn (bpf_socket: ?*anyopaque, level: c_int, optname: c_int, optval: ?*anyopaque, optlen: c_int) c_long, 57); pub const override_return = @intToPtr(fn (regs: *PtRegs, rc: u64) c_long, 58); pub const sock_ops_cb_flags_set = @intToPtr(fn (bpf_sock: *kern.SockOps, argval: c_int) c_long, 59); pub const msg_redirect_map = @intToPtr(fn (msg: *kern.SkMsgMd, map: *const kern.MapDef, key: u32, flags: u64) c_long, 60); @@ -80,78 +80,78 @@ pub const msg_pull_data = @intToPtr(fn (msg: *kern.SkMsgMd, start: u32, end: u32 pub const bind = @intToPtr(fn (ctx: *kern.BpfSockAddr, addr: *kern.SockAddr, addr_len: c_int) c_long, 64); pub const xdp_adjust_tail = @intToPtr(fn (xdp_md: *kern.XdpMd, delta: c_int) c_long, 65); pub const skb_get_xfrm_state = @intToPtr(fn (skb: *kern.SkBuff, index: u32, xfrm_state: *kern.XfrmState, size: u32, flags: u64) c_long, 66); -pub const get_stack = @intToPtr(fn (ctx: ?*c_void, buf: ?*c_void, size: u32, flags: u64) c_long, 67); -pub const skb_load_bytes_relative = @intToPtr(fn (skb: ?*const c_void, offset: u32, to: ?*c_void, len: u32, start_header: u32) c_long, 68); -pub const fib_lookup = @intToPtr(fn (ctx: ?*c_void, params: *kern.FibLookup, plen: c_int, flags: u32) c_long, 69); -pub const sock_hash_update = @intToPtr(fn (skops: *kern.SockOps, map: *const kern.MapDef, key: ?*c_void, flags: u64) c_long, 70); -pub const msg_redirect_hash = @intToPtr(fn (msg: *kern.SkMsgMd, map: *const kern.MapDef, key: ?*c_void, flags: u64) c_long, 71); -pub const sk_redirect_hash = @intToPtr(fn (skb: *kern.SkBuff, map: *const kern.MapDef, key: ?*c_void, flags: u64) c_long, 72); -pub const lwt_push_encap = @intToPtr(fn (skb: *kern.SkBuff, typ: u32, hdr: ?*c_void, len: u32) c_long, 73); -pub const lwt_seg6_store_bytes = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, from: ?*const c_void, len: u32) c_long, 74); +pub const get_stack = @intToPtr(fn (ctx: ?*anyopaque, buf: ?*anyopaque, size: u32, flags: u64) c_long, 67); +pub const skb_load_bytes_relative = @intToPtr(fn (skb: ?*const anyopaque, offset: u32, to: ?*anyopaque, len: u32, start_header: u32) c_long, 68); +pub const fib_lookup = @intToPtr(fn (ctx: ?*anyopaque, params: *kern.FibLookup, plen: c_int, flags: u32) c_long, 69); +pub const sock_hash_update = @intToPtr(fn (skops: *kern.SockOps, map: *const kern.MapDef, key: ?*anyopaque, flags: u64) c_long, 70); +pub const msg_redirect_hash = @intToPtr(fn (msg: *kern.SkMsgMd, map: *const kern.MapDef, key: ?*anyopaque, flags: u64) c_long, 71); +pub const sk_redirect_hash = @intToPtr(fn (skb: *kern.SkBuff, map: *const kern.MapDef, key: ?*anyopaque, flags: u64) c_long, 72); +pub const lwt_push_encap = @intToPtr(fn (skb: *kern.SkBuff, typ: u32, hdr: ?*anyopaque, len: u32) c_long, 73); +pub const lwt_seg6_store_bytes = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, from: ?*const anyopaque, len: u32) c_long, 74); pub const lwt_seg6_adjust_srh = @intToPtr(fn (skb: *kern.SkBuff, offset: u32, delta: i32) c_long, 75); -pub const lwt_seg6_action = @intToPtr(fn (skb: *kern.SkBuff, action: u32, param: ?*c_void, param_len: u32) c_long, 76); -pub const rc_repeat = @intToPtr(fn (ctx: ?*c_void) c_long, 77); -pub const rc_keydown = @intToPtr(fn (ctx: ?*c_void, protocol: u32, scancode: u64, toggle: u32) c_long, 78); +pub const lwt_seg6_action = @intToPtr(fn (skb: *kern.SkBuff, action: u32, param: ?*anyopaque, param_len: u32) c_long, 76); +pub const rc_repeat = @intToPtr(fn (ctx: ?*anyopaque) c_long, 77); +pub const rc_keydown = @intToPtr(fn (ctx: ?*anyopaque, protocol: u32, scancode: u64, toggle: u32) c_long, 78); pub const skb_cgroup_id = @intToPtr(fn (skb: *kern.SkBuff) u64, 79); pub const get_current_cgroup_id = @intToPtr(fn () u64, 80); -pub const get_local_storage = @intToPtr(fn (map: ?*c_void, flags: u64) ?*c_void, 81); -pub const sk_select_reuseport = @intToPtr(fn (reuse: *kern.SkReusePortMd, map: *const kern.MapDef, key: ?*c_void, flags: u64) c_long, 82); +pub const get_local_storage = @intToPtr(fn (map: ?*anyopaque, flags: u64) ?*anyopaque, 81); +pub const sk_select_reuseport = @intToPtr(fn (reuse: *kern.SkReusePortMd, map: *const kern.MapDef, key: ?*anyopaque, flags: u64) c_long, 82); pub const skb_ancestor_cgroup_id = @intToPtr(fn (skb: *kern.SkBuff, ancestor_level: c_int) u64, 83); -pub const sk_lookup_tcp = @intToPtr(fn (ctx: ?*c_void, tuple: *kern.SockTuple, tuple_size: u32, netns: u64, flags: u64) ?*kern.Sock, 84); -pub const sk_lookup_udp = @intToPtr(fn (ctx: ?*c_void, tuple: *kern.SockTuple, tuple_size: u32, netns: u64, flags: u64) ?*kern.Sock, 85); +pub const sk_lookup_tcp = @intToPtr(fn (ctx: ?*anyopaque, tuple: *kern.SockTuple, tuple_size: u32, netns: u64, flags: u64) ?*kern.Sock, 84); +pub const sk_lookup_udp = @intToPtr(fn (ctx: ?*anyopaque, tuple: *kern.SockTuple, tuple_size: u32, netns: u64, flags: u64) ?*kern.Sock, 85); pub const sk_release = @intToPtr(fn (sock: *kern.Sock) c_long, 86); -pub const map_push_elem = @intToPtr(fn (map: *const kern.MapDef, value: ?*const c_void, flags: u64) c_long, 87); -pub const map_pop_elem = @intToPtr(fn (map: *const kern.MapDef, value: ?*c_void) c_long, 88); -pub const map_peek_elem = @intToPtr(fn (map: *const kern.MapDef, value: ?*c_void) c_long, 89); +pub const map_push_elem = @intToPtr(fn (map: *const kern.MapDef, value: ?*const anyopaque, flags: u64) c_long, 87); +pub const map_pop_elem = @intToPtr(fn (map: *const kern.MapDef, value: ?*anyopaque) c_long, 88); +pub const map_peek_elem = @intToPtr(fn (map: *const kern.MapDef, value: ?*anyopaque) c_long, 89); pub const msg_push_data = @intToPtr(fn (msg: *kern.SkMsgMd, start: u32, len: u32, flags: u64) c_long, 90); pub const msg_pop_data = @intToPtr(fn (msg: *kern.SkMsgMd, start: u32, len: u32, flags: u64) c_long, 91); -pub const rc_pointer_rel = @intToPtr(fn (ctx: ?*c_void, rel_x: i32, rel_y: i32) c_long, 92); +pub const rc_pointer_rel = @intToPtr(fn (ctx: ?*anyopaque, rel_x: i32, rel_y: i32) c_long, 92); pub const spin_lock = @intToPtr(fn (lock: *kern.SpinLock) c_long, 93); pub const spin_unlock = @intToPtr(fn (lock: *kern.SpinLock) c_long, 94); pub const sk_fullsock = @intToPtr(fn (sk: *kern.Sock) ?*SkFullSock, 95); pub const tcp_sock = @intToPtr(fn (sk: *kern.Sock) ?*kern.TcpSock, 96); pub const skb_ecn_set_ce = @intToPtr(fn (skb: *kern.SkBuff) c_long, 97); pub const get_listener_sock = @intToPtr(fn (sk: *kern.Sock) ?*kern.Sock, 98); -pub const skc_lookup_tcp = @intToPtr(fn (ctx: ?*c_void, tuple: *kern.SockTuple, tuple_size: u32, netns: u64, flags: u64) ?*kern.Sock, 99); -pub const tcp_check_syncookie = @intToPtr(fn (sk: *kern.Sock, iph: ?*c_void, iph_len: u32, th: *TcpHdr, th_len: u32) c_long, 100); +pub const skc_lookup_tcp = @intToPtr(fn (ctx: ?*anyopaque, tuple: *kern.SockTuple, tuple_size: u32, netns: u64, flags: u64) ?*kern.Sock, 99); +pub const tcp_check_syncookie = @intToPtr(fn (sk: *kern.Sock, iph: ?*anyopaque, iph_len: u32, th: *TcpHdr, th_len: u32) c_long, 100); pub const sysctl_get_name = @intToPtr(fn (ctx: *kern.SysCtl, buf: ?*u8, buf_len: c_ulong, flags: u64) c_long, 101); pub const sysctl_get_current_value = @intToPtr(fn (ctx: *kern.SysCtl, buf: ?*u8, buf_len: c_ulong) c_long, 102); pub const sysctl_get_new_value = @intToPtr(fn (ctx: *kern.SysCtl, buf: ?*u8, buf_len: c_ulong) c_long, 103); pub const sysctl_set_new_value = @intToPtr(fn (ctx: *kern.SysCtl, buf: ?*const u8, buf_len: c_ulong) c_long, 104); pub const strtol = @intToPtr(fn (buf: *const u8, buf_len: c_ulong, flags: u64, res: *c_long) c_long, 105); pub const strtoul = @intToPtr(fn (buf: *const u8, buf_len: c_ulong, flags: u64, res: *c_ulong) c_long, 106); -pub const sk_storage_get = @intToPtr(fn (map: *const kern.MapDef, sk: *kern.Sock, value: ?*c_void, flags: u64) ?*c_void, 107); +pub const sk_storage_get = @intToPtr(fn (map: *const kern.MapDef, sk: *kern.Sock, value: ?*anyopaque, flags: u64) ?*anyopaque, 107); pub const sk_storage_delete = @intToPtr(fn (map: *const kern.MapDef, sk: *kern.Sock) c_long, 108); pub const send_signal = @intToPtr(fn (sig: u32) c_long, 109); -pub const tcp_gen_syncookie = @intToPtr(fn (sk: *kern.Sock, iph: ?*c_void, iph_len: u32, th: *TcpHdr, th_len: u32) i64, 110); -pub const skb_output = @intToPtr(fn (ctx: ?*c_void, map: *const kern.MapDef, flags: u64, data: ?*c_void, size: u64) c_long, 111); -pub const probe_read_user = @intToPtr(fn (dst: ?*c_void, size: u32, unsafe_ptr: ?*const c_void) c_long, 112); -pub const probe_read_kernel = @intToPtr(fn (dst: ?*c_void, size: u32, unsafe_ptr: ?*const c_void) c_long, 113); -pub const probe_read_user_str = @intToPtr(fn (dst: ?*c_void, size: u32, unsafe_ptr: ?*const c_void) c_long, 114); -pub const probe_read_kernel_str = @intToPtr(fn (dst: ?*c_void, size: u32, unsafe_ptr: ?*const c_void) c_long, 115); -pub const tcp_send_ack = @intToPtr(fn (tp: ?*c_void, rcv_nxt: u32) c_long, 116); +pub const tcp_gen_syncookie = @intToPtr(fn (sk: *kern.Sock, iph: ?*anyopaque, iph_len: u32, th: *TcpHdr, th_len: u32) i64, 110); +pub const skb_output = @intToPtr(fn (ctx: ?*anyopaque, map: *const kern.MapDef, flags: u64, data: ?*anyopaque, size: u64) c_long, 111); +pub const probe_read_user = @intToPtr(fn (dst: ?*anyopaque, size: u32, unsafe_ptr: ?*const anyopaque) c_long, 112); +pub const probe_read_kernel = @intToPtr(fn (dst: ?*anyopaque, size: u32, unsafe_ptr: ?*const anyopaque) c_long, 113); +pub const probe_read_user_str = @intToPtr(fn (dst: ?*anyopaque, size: u32, unsafe_ptr: ?*const anyopaque) c_long, 114); +pub const probe_read_kernel_str = @intToPtr(fn (dst: ?*anyopaque, size: u32, unsafe_ptr: ?*const anyopaque) c_long, 115); +pub const tcp_send_ack = @intToPtr(fn (tp: ?*anyopaque, rcv_nxt: u32) c_long, 116); pub const send_signal_thread = @intToPtr(fn (sig: u32) c_long, 117); pub const jiffies64 = @intToPtr(fn () u64, 118); -pub const read_branch_records = @intToPtr(fn (ctx: *kern.PerfEventData, buf: ?*c_void, size: u32, flags: u64) c_long, 119); +pub const read_branch_records = @intToPtr(fn (ctx: *kern.PerfEventData, buf: ?*anyopaque, size: u32, flags: u64) c_long, 119); pub const get_ns_current_pid_tgid = @intToPtr(fn (dev: u64, ino: u64, nsdata: *kern.PidNsInfo, size: u32) c_long, 120); -pub const xdp_output = @intToPtr(fn (ctx: ?*c_void, map: *const kern.MapDef, flags: u64, data: ?*c_void, size: u64) c_long, 121); -pub const get_netns_cookie = @intToPtr(fn (ctx: ?*c_void) u64, 122); +pub const xdp_output = @intToPtr(fn (ctx: ?*anyopaque, map: *const kern.MapDef, flags: u64, data: ?*anyopaque, size: u64) c_long, 121); +pub const get_netns_cookie = @intToPtr(fn (ctx: ?*anyopaque) u64, 122); pub const get_current_ancestor_cgroup_id = @intToPtr(fn (ancestor_level: c_int) u64, 123); pub const sk_assign = @intToPtr(fn (skb: *kern.SkBuff, sk: *kern.Sock, flags: u64) c_long, 124); pub const ktime_get_boot_ns = @intToPtr(fn () u64, 125); -pub const seq_printf = @intToPtr(fn (m: *kern.SeqFile, fmt: ?*const u8, fmt_size: u32, data: ?*const c_void, data_len: u32) c_long, 126); +pub const seq_printf = @intToPtr(fn (m: *kern.SeqFile, fmt: ?*const u8, fmt_size: u32, data: ?*const anyopaque, data_len: u32) c_long, 126); pub const seq_write = @intToPtr(fn (m: *kern.SeqFile, data: ?*const u8, len: u32) c_long, 127); pub const sk_cgroup_id = @intToPtr(fn (sk: *kern.BpfSock) u64, 128); pub const sk_ancestor_cgroup_id = @intToPtr(fn (sk: *kern.BpfSock, ancestor_level: c_long) u64, 129); -pub const ringbuf_output = @intToPtr(fn (ringbuf: ?*c_void, data: ?*c_void, size: u64, flags: u64) ?*c_void, 130); -pub const ringbuf_reserve = @intToPtr(fn (ringbuf: ?*c_void, size: u64, flags: u64) ?*c_void, 131); -pub const ringbuf_submit = @intToPtr(fn (data: ?*c_void, flags: u64) void, 132); -pub const ringbuf_discard = @intToPtr(fn (data: ?*c_void, flags: u64) void, 133); -pub const ringbuf_query = @intToPtr(fn (ringbuf: ?*c_void, flags: u64) u64, 134); +pub const ringbuf_output = @intToPtr(fn (ringbuf: ?*anyopaque, data: ?*anyopaque, size: u64, flags: u64) ?*anyopaque, 130); +pub const ringbuf_reserve = @intToPtr(fn (ringbuf: ?*anyopaque, size: u64, flags: u64) ?*anyopaque, 131); +pub const ringbuf_submit = @intToPtr(fn (data: ?*anyopaque, flags: u64) void, 132); +pub const ringbuf_discard = @intToPtr(fn (data: ?*anyopaque, flags: u64) void, 133); +pub const ringbuf_query = @intToPtr(fn (ringbuf: ?*anyopaque, flags: u64) u64, 134); pub const csum_level = @intToPtr(fn (skb: *kern.SkBuff, level: u64) c_long, 135); -pub const skc_to_tcp6_sock = @intToPtr(fn (sk: ?*c_void) ?*kern.Tcp6Sock, 136); -pub const skc_to_tcp_sock = @intToPtr(fn (sk: ?*c_void) ?*kern.TcpSock, 137); -pub const skc_to_tcp_timewait_sock = @intToPtr(fn (sk: ?*c_void) ?*kern.TcpTimewaitSock, 138); -pub const skc_to_tcp_request_sock = @intToPtr(fn (sk: ?*c_void) ?*kern.TcpRequestSock, 139); -pub const skc_to_udp6_sock = @intToPtr(fn (sk: ?*c_void) ?*kern.Udp6Sock, 140); -pub const get_task_stack = @intToPtr(fn (task: ?*c_void, buf: ?*c_void, size: u32, flags: u64) c_long, 141); +pub const skc_to_tcp6_sock = @intToPtr(fn (sk: ?*anyopaque) ?*kern.Tcp6Sock, 136); +pub const skc_to_tcp_sock = @intToPtr(fn (sk: ?*anyopaque) ?*kern.TcpSock, 137); +pub const skc_to_tcp_timewait_sock = @intToPtr(fn (sk: ?*anyopaque) ?*kern.TcpTimewaitSock, 138); +pub const skc_to_tcp_request_sock = @intToPtr(fn (sk: ?*anyopaque) ?*kern.TcpRequestSock, 139); +pub const skc_to_udp6_sock = @intToPtr(fn (sk: ?*anyopaque) ?*kern.Udp6Sock, 140); +pub const get_task_stack = @intToPtr(fn (task: ?*anyopaque, buf: ?*anyopaque, size: u32, flags: u64) c_long, 141); diff --git a/lib/std/os/linux/i386.zig b/lib/std/os/linux/i386.zig index 8dc6e3d50e..0b9a05c7c7 100644 --- a/lib/std/os/linux/i386.zig +++ b/lib/std/os/linux/i386.zig @@ -660,7 +660,7 @@ pub const msghdr = extern struct { namelen: socklen_t, iov: [*]iovec, iovlen: i32, - control: ?*c_void, + control: ?*anyopaque, controllen: socklen_t, flags: i32, }; @@ -670,7 +670,7 @@ pub const msghdr_const = extern struct { namelen: socklen_t, iov: [*]iovec_const, iovlen: i32, - control: ?*c_void, + control: ?*anyopaque, controllen: socklen_t, flags: i32, }; diff --git a/lib/std/os/linux/io_uring.zig b/lib/std/os/linux/io_uring.zig index ce87ab3aef..d2d9e64bda 100644 --- a/lib/std/os/linux/io_uring.zig +++ b/lib/std/os/linux/io_uring.zig @@ -841,7 +841,7 @@ pub const IO_Uring = struct { const res = linux.io_uring_register( self.fd, .REGISTER_FILES, - @ptrCast(*const c_void, fds.ptr), + @ptrCast(*const anyopaque, fds.ptr), @intCast(u32, fds.len), ); try handle_registration_result(res); @@ -872,7 +872,7 @@ pub const IO_Uring = struct { const res = linux.io_uring_register( self.fd, .REGISTER_FILES_UPDATE, - @ptrCast(*const c_void, &update), + @ptrCast(*const anyopaque, &update), @intCast(u32, fds.len), ); try handle_registration_result(res); @@ -886,7 +886,7 @@ pub const IO_Uring = struct { const res = linux.io_uring_register( self.fd, .REGISTER_EVENTFD, - @ptrCast(*const c_void, &fd), + @ptrCast(*const anyopaque, &fd), 1, ); try handle_registration_result(res); @@ -901,7 +901,7 @@ pub const IO_Uring = struct { const res = linux.io_uring_register( self.fd, .REGISTER_EVENTFD_ASYNC, - @ptrCast(*const c_void, &fd), + @ptrCast(*const anyopaque, &fd), 1, ); try handle_registration_result(res); @@ -1307,7 +1307,7 @@ pub fn io_uring_prep_poll_add( fd: os.fd_t, poll_mask: u32, ) void { - io_uring_prep_rw(.POLL_ADD, sqe, fd, @ptrToInt(@as(?*c_void, null)), 0, 0); + io_uring_prep_rw(.POLL_ADD, sqe, fd, @ptrToInt(@as(?*anyopaque, null)), 0, 0); sqe.rw_flags = __io_uring_prep_poll_mask(poll_mask); } diff --git a/lib/std/os/linux/powerpc.zig b/lib/std/os/linux/powerpc.zig index f58ae4cd2f..f5ef42680b 100644 --- a/lib/std/os/linux/powerpc.zig +++ b/lib/std/os/linux/powerpc.zig @@ -655,7 +655,7 @@ pub const msghdr = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec, msg_iovlen: usize, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, msg_flags: i32, }; @@ -665,7 +665,7 @@ pub const msghdr_const = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec_const, msg_iovlen: usize, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: socklen_t, msg_flags: i32, }; diff --git a/lib/std/os/linux/powerpc64.zig b/lib/std/os/linux/powerpc64.zig index 094fc1a8f5..165ca848c6 100644 --- a/lib/std/os/linux/powerpc64.zig +++ b/lib/std/os/linux/powerpc64.zig @@ -630,7 +630,7 @@ pub const msghdr = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec, msg_iovlen: usize, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: usize, msg_flags: i32, }; @@ -640,7 +640,7 @@ pub const msghdr_const = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec_const, msg_iovlen: usize, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: usize, msg_flags: i32, }; @@ -718,7 +718,7 @@ pub const mcontext_t = extern struct { _pad0: i32, handler: u64, oldmask: u64, - regs: ?*c_void, + regs: ?*anyopaque, gp_regs: gregset_t, fp_regs: fpregset_t, v_regs: *vrregset_t, diff --git a/lib/std/os/linux/sparc64.zig b/lib/std/os/linux/sparc64.zig index 1211379567..3ec9a67210 100644 --- a/lib/std/os/linux/sparc64.zig +++ b/lib/std/os/linux/sparc64.zig @@ -660,7 +660,7 @@ pub const msghdr = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec, msg_iovlen: u64, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: u64, msg_flags: i32, }; @@ -670,7 +670,7 @@ pub const msghdr_const = extern struct { msg_namelen: socklen_t, msg_iov: [*]iovec_const, msg_iovlen: u64, - msg_control: ?*c_void, + msg_control: ?*anyopaque, msg_controllen: u64, msg_flags: i32, }; diff --git a/lib/std/os/linux/x86_64.zig b/lib/std/os/linux/x86_64.zig index 022942685c..0aaa28262c 100644 --- a/lib/std/os/linux/x86_64.zig +++ b/lib/std/os/linux/x86_64.zig @@ -604,7 +604,7 @@ pub const msghdr = extern struct { iov: [*]iovec, iovlen: i32, __pad1: i32 = 0, - control: ?*c_void, + control: ?*anyopaque, controllen: socklen_t, __pad2: socklen_t = 0, flags: i32, @@ -616,7 +616,7 @@ pub const msghdr_const = extern struct { iov: [*]iovec_const, iovlen: i32, __pad1: i32 = 0, - control: ?*c_void, + control: ?*anyopaque, controllen: socklen_t, __pad2: socklen_t = 0, flags: i32, diff --git a/lib/std/os/test.zig b/lib/std/os/test.zig index 7c84c69a6f..b502a8090a 100644 --- a/lib/std/os/test.zig +++ b/lib/std/os/test.zig @@ -408,7 +408,7 @@ test "sigaltstack" { // If the type is not available use void to avoid erroring out when `iter_fn` is // analyzed -const dl_phdr_info = if (@hasDecl(os.system, "dl_phdr_info")) os.dl_phdr_info else c_void; +const dl_phdr_info = if (@hasDecl(os.system, "dl_phdr_info")) os.dl_phdr_info else anyopaque; const IterFnError = error{ MissingPtLoadSegment, @@ -740,7 +740,7 @@ test "sigaction" { return error.SkipZigTest; const S = struct { - fn handler(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const c_void) callconv(.C) void { + fn handler(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const anyopaque) callconv(.C) void { _ = ctx_ptr; // Check that we received the correct signal. switch (native_os) { diff --git a/lib/std/os/uefi/protocols/ip6_config_protocol.zig b/lib/std/os/uefi/protocols/ip6_config_protocol.zig index aa9d783fd8..3d6bdc2d26 100644 --- a/lib/std/os/uefi/protocols/ip6_config_protocol.zig +++ b/lib/std/os/uefi/protocols/ip6_config_protocol.zig @@ -4,16 +4,16 @@ const Event = uefi.Event; const Status = uefi.Status; pub const Ip6ConfigProtocol = extern struct { - _set_data: fn (*const Ip6ConfigProtocol, Ip6ConfigDataType, usize, *const c_void) callconv(.C) Status, - _get_data: fn (*const Ip6ConfigProtocol, Ip6ConfigDataType, *usize, ?*const c_void) callconv(.C) Status, + _set_data: fn (*const Ip6ConfigProtocol, Ip6ConfigDataType, usize, *const anyopaque) callconv(.C) Status, + _get_data: fn (*const Ip6ConfigProtocol, Ip6ConfigDataType, *usize, ?*const anyopaque) callconv(.C) Status, _register_data_notify: fn (*const Ip6ConfigProtocol, Ip6ConfigDataType, Event) callconv(.C) Status, _unregister_data_notify: fn (*const Ip6ConfigProtocol, Ip6ConfigDataType, Event) callconv(.C) Status, - pub fn setData(self: *const Ip6ConfigProtocol, data_type: Ip6ConfigDataType, data_size: usize, data: *const c_void) Status { + pub fn setData(self: *const Ip6ConfigProtocol, data_type: Ip6ConfigDataType, data_size: usize, data: *const anyopaque) Status { return self._set_data(self, data_type, data_size, data); } - pub fn getData(self: *const Ip6ConfigProtocol, data_type: Ip6ConfigDataType, data_size: *usize, data: ?*const c_void) Status { + pub fn getData(self: *const Ip6ConfigProtocol, data_type: Ip6ConfigDataType, data_size: *usize, data: ?*const anyopaque) Status { return self._get_data(self, data_type, data_size, data); } diff --git a/lib/std/os/uefi/protocols/ip6_protocol.zig b/lib/std/os/uefi/protocols/ip6_protocol.zig index dbe0f16396..db419630d0 100644 --- a/lib/std/os/uefi/protocols/ip6_protocol.zig +++ b/lib/std/os/uefi/protocols/ip6_protocol.zig @@ -140,5 +140,5 @@ pub const Ip6IcmpType = extern struct { pub const Ip6CompletionToken = extern struct { event: Event, status: Status, - packet: *c_void, // union TODO + packet: *anyopaque, // union TODO }; diff --git a/lib/std/os/uefi/protocols/loaded_image_protocol.zig b/lib/std/os/uefi/protocols/loaded_image_protocol.zig index b8afcb1063..138467ffee 100644 --- a/lib/std/os/uefi/protocols/loaded_image_protocol.zig +++ b/lib/std/os/uefi/protocols/loaded_image_protocol.zig @@ -12,9 +12,9 @@ pub const LoadedImageProtocol = extern struct { system_table: *SystemTable, device_handle: ?Handle, file_path: *DevicePathProtocol, - reserved: *c_void, + reserved: *anyopaque, load_options_size: u32, - load_options: ?*c_void, + load_options: ?*anyopaque, image_base: [*]u8, image_size: u64, image_code_type: MemoryType, diff --git a/lib/std/os/uefi/protocols/managed_network_protocol.zig b/lib/std/os/uefi/protocols/managed_network_protocol.zig index 122482be23..4747c0e185 100644 --- a/lib/std/os/uefi/protocols/managed_network_protocol.zig +++ b/lib/std/os/uefi/protocols/managed_network_protocol.zig @@ -9,7 +9,7 @@ const MacAddress = uefi.protocols.MacAddress; pub const ManagedNetworkProtocol = extern struct { _get_mode_data: fn (*const ManagedNetworkProtocol, ?*ManagedNetworkConfigData, ?*SimpleNetworkMode) callconv(.C) Status, _configure: fn (*const ManagedNetworkProtocol, ?*const ManagedNetworkConfigData) callconv(.C) Status, - _mcast_ip_to_mac: fn (*const ManagedNetworkProtocol, bool, *const c_void, *MacAddress) callconv(.C) Status, + _mcast_ip_to_mac: fn (*const ManagedNetworkProtocol, bool, *const anyopaque, *MacAddress) callconv(.C) Status, _groups: fn (*const ManagedNetworkProtocol, bool, ?*const MacAddress) callconv(.C) Status, _transmit: fn (*const ManagedNetworkProtocol, *const ManagedNetworkCompletionToken) callconv(.C) Status, _receive: fn (*const ManagedNetworkProtocol, *const ManagedNetworkCompletionToken) callconv(.C) Status, @@ -29,7 +29,7 @@ pub const ManagedNetworkProtocol = extern struct { /// Translates an IP multicast address to a hardware (MAC) multicast address. /// This function may be unsupported in some MNP implementations. - pub fn mcastIpToMac(self: *const ManagedNetworkProtocol, ipv6flag: bool, ipaddress: *const c_void, mac_address: *MacAddress) Status { + pub fn mcastIpToMac(self: *const ManagedNetworkProtocol, ipv6flag: bool, ipaddress: *const anyopaque, mac_address: *MacAddress) Status { _ = mac_address; return self._mcast_ip_to_mac(self, ipv6flag, ipaddress); } diff --git a/lib/std/os/uefi/protocols/simple_network_protocol.zig b/lib/std/os/uefi/protocols/simple_network_protocol.zig index a3743ac2c1..01e5986c2d 100644 --- a/lib/std/os/uefi/protocols/simple_network_protocol.zig +++ b/lib/std/os/uefi/protocols/simple_network_protocol.zig @@ -13,7 +13,7 @@ pub const SimpleNetworkProtocol = extern struct { _receive_filters: fn (*const SimpleNetworkProtocol, SimpleNetworkReceiveFilter, SimpleNetworkReceiveFilter, bool, usize, ?[*]const MacAddress) callconv(.C) Status, _station_address: fn (*const SimpleNetworkProtocol, bool, ?*const MacAddress) callconv(.C) Status, _statistics: fn (*const SimpleNetworkProtocol, bool, ?*usize, ?*NetworkStatistics) callconv(.C) Status, - _mcast_ip_to_mac: fn (*const SimpleNetworkProtocol, bool, *const c_void, *MacAddress) callconv(.C) Status, + _mcast_ip_to_mac: fn (*const SimpleNetworkProtocol, bool, *const anyopaque, *MacAddress) callconv(.C) Status, _nvdata: fn (*const SimpleNetworkProtocol, bool, usize, usize, [*]u8) callconv(.C) Status, _get_status: fn (*const SimpleNetworkProtocol, *SimpleNetworkInterruptStatus, ?*?[*]u8) callconv(.C) Status, _transmit: fn (*const SimpleNetworkProtocol, usize, usize, [*]const u8, ?*const MacAddress, ?*const MacAddress, ?*const u16) callconv(.C) Status, @@ -62,7 +62,7 @@ pub const SimpleNetworkProtocol = extern struct { } /// Converts a multicast IP address to a multicast HW MAC address. - pub fn mcastIpToMac(self: *const SimpleNetworkProtocol, ipv6: bool, ip: *const c_void, mac: *MacAddress) Status { + pub fn mcastIpToMac(self: *const SimpleNetworkProtocol, ipv6: bool, ip: *const anyopaque, mac: *MacAddress) Status { return self._mcast_ip_to_mac(self, ipv6, ip, mac); } diff --git a/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig b/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig index 4a2b098e61..d816deb8cb 100644 --- a/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig +++ b/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig @@ -9,8 +9,8 @@ pub const SimpleTextInputExProtocol = extern struct { _read_key_stroke_ex: fn (*const SimpleTextInputExProtocol, *KeyData) callconv(.C) Status, wait_for_key_ex: Event, _set_state: fn (*const SimpleTextInputExProtocol, *const u8) callconv(.C) Status, - _register_key_notify: fn (*const SimpleTextInputExProtocol, *const KeyData, fn (*const KeyData) callconv(.C) usize, **c_void) callconv(.C) Status, - _unregister_key_notify: fn (*const SimpleTextInputExProtocol, *const c_void) callconv(.C) Status, + _register_key_notify: fn (*const SimpleTextInputExProtocol, *const KeyData, fn (*const KeyData) callconv(.C) usize, **anyopaque) callconv(.C) Status, + _unregister_key_notify: fn (*const SimpleTextInputExProtocol, *const anyopaque) callconv(.C) Status, /// Resets the input device hardware. pub fn reset(self: *const SimpleTextInputExProtocol, verify: bool) Status { @@ -28,12 +28,12 @@ pub const SimpleTextInputExProtocol = extern struct { } /// Register a notification function for a particular keystroke for the input device. - pub fn registerKeyNotify(self: *const SimpleTextInputExProtocol, key_data: *const KeyData, notify: fn (*const KeyData) callconv(.C) usize, handle: **c_void) Status { + pub fn registerKeyNotify(self: *const SimpleTextInputExProtocol, key_data: *const KeyData, notify: fn (*const KeyData) callconv(.C) usize, handle: **anyopaque) Status { return self._register_key_notify(self, key_data, notify, handle); } /// Remove the notification that was previously registered. - pub fn unregisterKeyNotify(self: *const SimpleTextInputExProtocol, handle: *const c_void) Status { + pub fn unregisterKeyNotify(self: *const SimpleTextInputExProtocol, handle: *const anyopaque) Status { return self._unregister_key_notify(self, handle); } diff --git a/lib/std/os/uefi/tables/boot_services.zig b/lib/std/os/uefi/tables/boot_services.zig index d5c3f12816..75daf6feb2 100644 --- a/lib/std/os/uefi/tables/boot_services.zig +++ b/lib/std/os/uefi/tables/boot_services.zig @@ -42,7 +42,7 @@ pub const BootServices = extern struct { freePool: fn ([*]align(8) u8) callconv(.C) Status, /// Creates an event. - createEvent: fn (u32, usize, ?fn (Event, ?*c_void) callconv(.C) void, ?*const c_void, *Event) callconv(.C) Status, + createEvent: fn (u32, usize, ?fn (Event, ?*anyopaque) callconv(.C) void, ?*const anyopaque, *Event) callconv(.C) Status, /// Sets the type of timer and the trigger time for a timer event. setTimer: fn (Event, TimerDelay, u64) callconv(.C) Status, @@ -64,14 +64,14 @@ pub const BootServices = extern struct { uninstallProtocolInterface: Status, // TODO /// Queries a handle to determine if it supports a specified protocol. - handleProtocol: fn (Handle, *align(8) const Guid, *?*c_void) callconv(.C) Status, + handleProtocol: fn (Handle, *align(8) const Guid, *?*anyopaque) callconv(.C) Status, - reserved: *c_void, + reserved: *anyopaque, registerProtocolNotify: Status, // TODO /// Returns an array of handles that support a specified protocol. - locateHandle: fn (LocateSearchType, ?*align(8) const Guid, ?*const c_void, *usize, [*]Handle) callconv(.C) Status, + locateHandle: fn (LocateSearchType, ?*align(8) const Guid, ?*const anyopaque, *usize, [*]Handle) callconv(.C) Status, /// Locates the handle to a device on the device path that supports the specified protocol locateDevicePath: fn (*align(8) const Guid, **const DevicePathProtocol, *?Handle) callconv(.C) Status, @@ -84,7 +84,7 @@ pub const BootServices = extern struct { startImage: fn (Handle, ?*usize, ?*[*]u16) callconv(.C) Status, /// Terminates a loaded EFI image and returns control to boot services. - exit: fn (Handle, Status, usize, ?*const c_void) callconv(.C) Status, + exit: fn (Handle, Status, usize, ?*const anyopaque) callconv(.C) Status, /// Unloads an image. unloadImage: fn (Handle) callconv(.C) Status, @@ -105,7 +105,7 @@ pub const BootServices = extern struct { disconnectController: Status, // TODO /// Queries a handle to determine if it supports a specified protocol. - openProtocol: fn (Handle, *align(8) const Guid, *?*c_void, ?Handle, ?Handle, OpenProtocolAttributes) callconv(.C) Status, + openProtocol: fn (Handle, *align(8) const Guid, *?*anyopaque, ?Handle, ?Handle, OpenProtocolAttributes) callconv(.C) Status, /// Closes a protocol on a handle that was opened using openProtocol(). closeProtocol: fn (Handle, *align(8) const Guid, Handle, ?Handle) callconv(.C) Status, @@ -117,10 +117,10 @@ pub const BootServices = extern struct { protocolsPerHandle: fn (Handle, *[*]*align(8) const Guid, *usize) callconv(.C) Status, /// Returns an array of handles that support the requested protocol in a buffer allocated from pool. - locateHandleBuffer: fn (LocateSearchType, ?*align(8) const Guid, ?*const c_void, *usize, *[*]Handle) callconv(.C) Status, + locateHandleBuffer: fn (LocateSearchType, ?*align(8) const Guid, ?*const anyopaque, *usize, *[*]Handle) callconv(.C) Status, /// Returns the first protocol instance that matches the given protocol. - locateProtocol: fn (*align(8) const Guid, ?*const c_void, *?*c_void) callconv(.C) Status, + locateProtocol: fn (*align(8) const Guid, ?*const anyopaque, *?*anyopaque) callconv(.C) Status, installMultipleProtocolInterfaces: Status, // TODO uninstallMultipleProtocolInterfaces: Status, // TODO diff --git a/lib/std/os/uefi/tables/configuration_table.zig b/lib/std/os/uefi/tables/configuration_table.zig index 0ac3bd73c8..75ea2a215b 100644 --- a/lib/std/os/uefi/tables/configuration_table.zig +++ b/lib/std/os/uefi/tables/configuration_table.zig @@ -3,7 +3,7 @@ const Guid = uefi.Guid; pub const ConfigurationTable = extern struct { vendor_guid: Guid, - vendor_table: *c_void, + vendor_table: *anyopaque, pub const acpi_20_table_guid align(8) = Guid{ .time_low = 0x8868e871, diff --git a/lib/std/os/uefi/tables/runtime_services.zig b/lib/std/os/uefi/tables/runtime_services.zig index 017cc1fc33..1250894180 100644 --- a/lib/std/os/uefi/tables/runtime_services.zig +++ b/lib/std/os/uefi/tables/runtime_services.zig @@ -28,21 +28,21 @@ pub const RuntimeServices = extern struct { setVirtualAddressMap: fn (usize, usize, u32, [*]MemoryDescriptor) callconv(.C) Status, /// Determines the new virtual address that is to be used on subsequent memory accesses. - convertPointer: fn (usize, **c_void) callconv(.C) Status, + convertPointer: fn (usize, **anyopaque) callconv(.C) Status, /// Returns the value of a variable. - getVariable: fn ([*:0]const u16, *align(8) const Guid, ?*u32, *usize, ?*c_void) callconv(.C) Status, + getVariable: fn ([*:0]const u16, *align(8) const Guid, ?*u32, *usize, ?*anyopaque) callconv(.C) Status, /// Enumerates the current variable names. getNextVariableName: fn (*usize, [*:0]u16, *align(8) Guid) callconv(.C) Status, /// Sets the value of a variable. - setVariable: fn ([*:0]const u16, *align(8) const Guid, u32, usize, *c_void) callconv(.C) Status, + setVariable: fn ([*:0]const u16, *align(8) const Guid, u32, usize, *anyopaque) callconv(.C) Status, getNextHighMonotonicCount: Status, // TODO /// Resets the entire platform. - resetSystem: fn (ResetType, Status, usize, ?*const c_void) callconv(.C) noreturn, + resetSystem: fn (ResetType, Status, usize, ?*const anyopaque) callconv(.C) noreturn, updateCapsule: Status, // TODO queryCapsuleCapabilities: Status, // TODO diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index a74cb9031d..59e65ed54c 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -1553,7 +1553,7 @@ pub fn CreateProcessW( lpThreadAttributes: ?*SECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, - lpEnvironment: ?*c_void, + lpEnvironment: ?*anyopaque, lpCurrentDirectory: ?LPWSTR, lpStartupInfo: *STARTUPINFOW, lpProcessInformation: *PROCESS_INFORMATION, @@ -1619,11 +1619,11 @@ pub fn QueryPerformanceCounter() u64 { return @bitCast(u64, result); } -pub fn InitOnceExecuteOnce(InitOnce: *INIT_ONCE, InitFn: INIT_ONCE_FN, Parameter: ?*c_void, Context: ?*c_void) void { +pub fn InitOnceExecuteOnce(InitOnce: *INIT_ONCE, InitFn: INIT_ONCE_FN, Parameter: ?*anyopaque, Context: ?*anyopaque) void { assert(kernel32.InitOnceExecuteOnce(InitOnce, InitFn, Parameter, Context) != 0); } -pub fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: *c_void) void { +pub fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: *anyopaque) void { assert(kernel32.HeapFree(hHeap, dwFlags, lpMem) != 0); } @@ -1675,7 +1675,7 @@ pub fn LockFile( FileHandle: HANDLE, Event: ?HANDLE, ApcRoutine: ?*IO_APC_ROUTINE, - ApcContext: ?*c_void, + ApcContext: ?*anyopaque, IoStatusBlock: *IO_STATUS_BLOCK, ByteOffset: *const LARGE_INTEGER, Length: *const LARGE_INTEGER, @@ -1954,7 +1954,7 @@ pub fn loadWinsockExtensionFunction(comptime T: type, sock: ws2_32.SOCKET, guid: const rc = ws2_32.WSAIoctl( sock, ws2_32.SIO_GET_EXTENSION_FUNCTION_POINTER, - @ptrCast(*const c_void, &guid), + @ptrCast(*const anyopaque, &guid), @sizeOf(GUID), &function, @sizeOf(T), @@ -2055,7 +2055,7 @@ pub const BYTE = u8; pub const CHAR = u8; pub const UCHAR = u8; pub const FLOAT = f32; -pub const HANDLE = *c_void; +pub const HANDLE = *anyopaque; pub const HCRYPTPROV = ULONG_PTR; pub const ATOM = u16; pub const HBRUSH = *opaque {}; @@ -2070,12 +2070,12 @@ pub const HGLRC = *opaque {}; pub const FARPROC = *opaque {}; pub const INT = c_int; pub const LPCSTR = [*:0]const CHAR; -pub const LPCVOID = *const c_void; +pub const LPCVOID = *const anyopaque; pub const LPSTR = [*:0]CHAR; -pub const LPVOID = *c_void; +pub const LPVOID = *anyopaque; pub const LPWSTR = [*:0]WCHAR; pub const LPCWSTR = [*:0]const WCHAR; -pub const PVOID = *c_void; +pub const PVOID = *anyopaque; pub const PWSTR = [*:0]WCHAR; pub const SIZE_T = usize; pub const UINT = c_uint; @@ -2289,7 +2289,7 @@ pub const IO_STATUS_BLOCK = extern struct { // "DUMMYUNIONNAME" expands to "u" u: extern union { Status: NTSTATUS, - Pointer: ?*c_void, + Pointer: ?*anyopaque, }, Information: ULONG_PTR, }; @@ -2457,7 +2457,7 @@ pub const VOLUME_NAME_NT = 0x2; pub const SECURITY_ATTRIBUTES = extern struct { nLength: DWORD, - lpSecurityDescriptor: ?*c_void, + lpSecurityDescriptor: ?*anyopaque, bInheritHandle: BOOL, }; @@ -2923,10 +2923,10 @@ pub const RTL_CRITICAL_SECTION = extern struct { pub const CRITICAL_SECTION = RTL_CRITICAL_SECTION; pub const INIT_ONCE = RTL_RUN_ONCE; pub const INIT_ONCE_STATIC_INIT = RTL_RUN_ONCE_INIT; -pub const INIT_ONCE_FN = fn (InitOnce: *INIT_ONCE, Parameter: ?*c_void, Context: ?*c_void) callconv(.C) BOOL; +pub const INIT_ONCE_FN = fn (InitOnce: *INIT_ONCE, Parameter: ?*anyopaque, Context: ?*anyopaque) callconv(.C) BOOL; pub const RTL_RUN_ONCE = extern struct { - Ptr: ?*c_void, + Ptr: ?*anyopaque, }; pub const RTL_RUN_ONCE_INIT = RTL_RUN_ONCE{ .Ptr = null }; @@ -2966,7 +2966,7 @@ pub const EXCEPTION_RECORD = extern struct { ExceptionCode: u32, ExceptionFlags: u32, ExceptionRecord: *EXCEPTION_RECORD, - ExceptionAddress: *c_void, + ExceptionAddress: *anyopaque, NumberParameters: u32, ExceptionInformation: [15]usize, }; @@ -3202,8 +3202,8 @@ pub const OBJECT_ATTRIBUTES = extern struct { RootDirectory: ?HANDLE, ObjectName: *UNICODE_STRING, Attributes: ULONG, - SecurityDescriptor: ?*c_void, - SecurityQualityOfService: ?*c_void, + SecurityDescriptor: ?*anyopaque, + SecurityQualityOfService: ?*anyopaque, }; pub const OBJ_INHERIT = 0x00000002; diff --git a/lib/std/os/windows/kernel32.zig b/lib/std/os/windows/kernel32.zig index cde4a4906b..b602921648 100644 --- a/lib/std/os/windows/kernel32.zig +++ b/lib/std/os/windows/kernel32.zig @@ -57,7 +57,7 @@ const UCHAR = windows.UCHAR; const FARPROC = windows.FARPROC; const INIT_ONCE_FN = windows.INIT_ONCE_FN; -pub extern "kernel32" fn AddVectoredExceptionHandler(First: c_ulong, Handler: ?VECTORED_EXCEPTION_HANDLER) callconv(WINAPI) ?*c_void; +pub extern "kernel32" fn AddVectoredExceptionHandler(First: c_ulong, Handler: ?VECTORED_EXCEPTION_HANDLER) callconv(WINAPI) ?*anyopaque; pub extern "kernel32" fn RemoveVectoredExceptionHandler(Handle: HANDLE) callconv(WINAPI) c_ulong; pub extern "kernel32" fn CancelIo(hFile: HANDLE) callconv(WINAPI) BOOL; @@ -110,7 +110,7 @@ pub extern "kernel32" fn CreateProcessW( lpThreadAttributes: ?*SECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, - lpEnvironment: ?*c_void, + lpEnvironment: ?*anyopaque, lpCurrentDirectory: ?LPWSTR, lpStartupInfo: *STARTUPINFOW, lpProcessInformation: *PROCESS_INFORMATION, @@ -125,7 +125,7 @@ pub extern "kernel32" fn CreateThread(lpThreadAttributes: ?*SECURITY_ATTRIBUTES, pub extern "kernel32" fn DeviceIoControl( h: HANDLE, dwIoControlCode: DWORD, - lpInBuffer: ?*const c_void, + lpInBuffer: ?*const anyopaque, nInBufferSize: DWORD, lpOutBuffer: ?LPVOID, nOutBufferSize: DWORD, @@ -194,7 +194,7 @@ pub extern "kernel32" fn GetFileInformationByHandle( pub extern "kernel32" fn GetFileInformationByHandleEx( in_hFile: HANDLE, in_FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, - out_lpFileInformation: *c_void, + out_lpFileInformation: *anyopaque, in_dwBufferSize: DWORD, ) callconv(WINAPI) BOOL; @@ -230,18 +230,18 @@ pub extern "kernel32" fn GetSystemTimeAsFileTime(*FILETIME) callconv(WINAPI) voi pub extern "kernel32" fn HeapCreate(flOptions: DWORD, dwInitialSize: SIZE_T, dwMaximumSize: SIZE_T) callconv(WINAPI) ?HANDLE; pub extern "kernel32" fn HeapDestroy(hHeap: HANDLE) callconv(WINAPI) BOOL; -pub extern "kernel32" fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: *c_void, dwBytes: SIZE_T) callconv(WINAPI) ?*c_void; -pub extern "kernel32" fn HeapSize(hHeap: HANDLE, dwFlags: DWORD, lpMem: *const c_void) callconv(WINAPI) SIZE_T; +pub extern "kernel32" fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: *anyopaque, dwBytes: SIZE_T) callconv(WINAPI) ?*anyopaque; +pub extern "kernel32" fn HeapSize(hHeap: HANDLE, dwFlags: DWORD, lpMem: *const anyopaque) callconv(WINAPI) SIZE_T; pub extern "kernel32" fn HeapCompact(hHeap: HANDLE, dwFlags: DWORD) callconv(WINAPI) SIZE_T; pub extern "kernel32" fn HeapSummary(hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY) callconv(WINAPI) BOOL; pub extern "kernel32" fn GetStdHandle(in_nStdHandle: DWORD) callconv(WINAPI) ?HANDLE; -pub extern "kernel32" fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) callconv(WINAPI) ?*c_void; +pub extern "kernel32" fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) callconv(WINAPI) ?*anyopaque; -pub extern "kernel32" fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: *c_void) callconv(WINAPI) BOOL; +pub extern "kernel32" fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: *anyopaque) callconv(WINAPI) BOOL; -pub extern "kernel32" fn HeapValidate(hHeap: HANDLE, dwFlags: DWORD, lpMem: ?*const c_void) callconv(WINAPI) BOOL; +pub extern "kernel32" fn HeapValidate(hHeap: HANDLE, dwFlags: DWORD, lpMem: ?*const anyopaque) callconv(WINAPI) BOOL; pub extern "kernel32" fn VirtualAlloc(lpAddress: ?LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) callconv(WINAPI) ?LPVOID; pub extern "kernel32" fn VirtualFree(lpAddress: ?LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) callconv(WINAPI) BOOL; @@ -356,7 +356,7 @@ pub extern "kernel32" fn EnterCriticalSection(lpCriticalSection: *CRITICAL_SECTI pub extern "kernel32" fn LeaveCriticalSection(lpCriticalSection: *CRITICAL_SECTION) callconv(WINAPI) void; pub extern "kernel32" fn DeleteCriticalSection(lpCriticalSection: *CRITICAL_SECTION) callconv(WINAPI) void; -pub extern "kernel32" fn InitOnceExecuteOnce(InitOnce: *INIT_ONCE, InitFn: INIT_ONCE_FN, Parameter: ?*c_void, Context: ?*c_void) callconv(WINAPI) BOOL; +pub extern "kernel32" fn InitOnceExecuteOnce(InitOnce: *INIT_ONCE, InitFn: INIT_ONCE_FN, Parameter: ?*anyopaque, Context: ?*anyopaque) callconv(WINAPI) BOOL; pub extern "kernel32" fn K32EmptyWorkingSet(hProcess: HANDLE) callconv(WINAPI) BOOL; pub extern "kernel32" fn K32EnumDeviceDrivers(lpImageBase: [*]LPVOID, cb: DWORD, lpcbNeeded: *DWORD) callconv(WINAPI) BOOL; diff --git a/lib/std/os/windows/ntdll.zig b/lib/std/os/windows/ntdll.zig index 228cf09ead..41c1a905ec 100644 --- a/lib/std/os/windows/ntdll.zig +++ b/lib/std/os/windows/ntdll.zig @@ -29,13 +29,13 @@ pub extern "NtDll" fn RtlGetVersion( pub extern "NtDll" fn RtlCaptureStackBackTrace( FramesToSkip: DWORD, FramesToCapture: DWORD, - BackTrace: **c_void, + BackTrace: **anyopaque, BackTraceHash: ?*DWORD, ) callconv(WINAPI) WORD; pub extern "NtDll" fn NtQueryInformationFile( FileHandle: HANDLE, IoStatusBlock: *IO_STATUS_BLOCK, - FileInformation: *c_void, + FileInformation: *anyopaque, Length: ULONG, FileInformationClass: FILE_INFORMATION_CLASS, ) callconv(WINAPI) NTSTATUS; @@ -62,17 +62,17 @@ pub extern "NtDll" fn NtCreateFile( ShareAccess: ULONG, CreateDisposition: ULONG, CreateOptions: ULONG, - EaBuffer: ?*c_void, + EaBuffer: ?*anyopaque, EaLength: ULONG, ) callconv(WINAPI) NTSTATUS; pub extern "NtDll" fn NtDeviceIoControlFile( FileHandle: HANDLE, Event: ?HANDLE, ApcRoutine: ?IO_APC_ROUTINE, - ApcContext: ?*c_void, + ApcContext: ?*anyopaque, IoStatusBlock: *IO_STATUS_BLOCK, IoControlCode: ULONG, - InputBuffer: ?*const c_void, + InputBuffer: ?*const anyopaque, InputBufferLength: ULONG, OutputBuffer: ?PVOID, OutputBufferLength: ULONG, @@ -81,10 +81,10 @@ pub extern "NtDll" fn NtFsControlFile( FileHandle: HANDLE, Event: ?HANDLE, ApcRoutine: ?IO_APC_ROUTINE, - ApcContext: ?*c_void, + ApcContext: ?*anyopaque, IoStatusBlock: *IO_STATUS_BLOCK, FsControlCode: ULONG, - InputBuffer: ?*const c_void, + InputBuffer: ?*const anyopaque, InputBufferLength: ULONG, OutputBuffer: ?PVOID, OutputBufferLength: ULONG, @@ -102,9 +102,9 @@ pub extern "NtDll" fn NtQueryDirectoryFile( FileHandle: HANDLE, Event: ?HANDLE, ApcRoutine: ?IO_APC_ROUTINE, - ApcContext: ?*c_void, + ApcContext: ?*anyopaque, IoStatusBlock: *IO_STATUS_BLOCK, - FileInformation: *c_void, + FileInformation: *anyopaque, Length: ULONG, FileInformationClass: FILE_INFORMATION_CLASS, ReturnSingleEntry: BOOLEAN, @@ -121,14 +121,14 @@ pub extern "NtDll" fn NtCreateKeyedEvent( pub extern "NtDll" fn NtReleaseKeyedEvent( EventHandle: ?HANDLE, - Key: ?*const c_void, + Key: ?*const anyopaque, Alertable: BOOLEAN, Timeout: ?*const LARGE_INTEGER, ) callconv(WINAPI) NTSTATUS; pub extern "NtDll" fn NtWaitForKeyedEvent( EventHandle: ?HANDLE, - Key: ?*const c_void, + Key: ?*const anyopaque, Alertable: BOOLEAN, Timeout: ?*const LARGE_INTEGER, ) callconv(WINAPI) NTSTATUS; @@ -144,16 +144,16 @@ pub extern "NtDll" fn NtQueryObject( ) callconv(WINAPI) NTSTATUS; pub extern "NtDll" fn RtlWakeAddressAll( - Address: ?*const c_void, + Address: ?*const anyopaque, ) callconv(WINAPI) void; pub extern "NtDll" fn RtlWakeAddressSingle( - Address: ?*const c_void, + Address: ?*const anyopaque, ) callconv(WINAPI) void; pub extern "NtDll" fn RtlWaitOnAddress( - Address: ?*const c_void, - CompareAddress: ?*const c_void, + Address: ?*const anyopaque, + CompareAddress: ?*const anyopaque, AddressSize: SIZE_T, Timeout: ?*const LARGE_INTEGER, ) callconv(WINAPI) NTSTATUS; @@ -162,7 +162,7 @@ pub extern "NtDll" fn NtLockFile( FileHandle: HANDLE, Event: ?HANDLE, ApcRoutine: ?*IO_APC_ROUTINE, - ApcContext: ?*c_void, + ApcContext: ?*anyopaque, IoStatusBlock: *IO_STATUS_BLOCK, ByteOffset: *const LARGE_INTEGER, Length: *const LARGE_INTEGER, diff --git a/lib/std/os/windows/user32.zig b/lib/std/os/windows/user32.zig index f1c6f1110d..3e69d02695 100644 --- a/lib/std/os/windows/user32.zig +++ b/lib/std/os/windows/user32.zig @@ -1280,7 +1280,7 @@ pub const WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPM pub const CW_USEDEFAULT = @bitCast(i32, @as(u32, 0x80000000)); pub extern "user32" fn CreateWindowExA(dwExStyle: DWORD, lpClassName: [*:0]const u8, lpWindowName: [*:0]const u8, dwStyle: DWORD, X: i32, Y: i32, nWidth: i32, nHeight: i32, hWindParent: ?HWND, hMenu: ?HMENU, hInstance: HINSTANCE, lpParam: ?LPVOID) callconv(WINAPI) ?HWND; -pub fn createWindowExA(dwExStyle: u32, lpClassName: [*:0]const u8, lpWindowName: [*:0]const u8, dwStyle: u32, X: i32, Y: i32, nWidth: i32, nHeight: i32, hWindParent: ?HWND, hMenu: ?HMENU, hInstance: HINSTANCE, lpParam: ?*c_void) !HWND { +pub fn createWindowExA(dwExStyle: u32, lpClassName: [*:0]const u8, lpWindowName: [*:0]const u8, dwStyle: u32, X: i32, Y: i32, nWidth: i32, nHeight: i32, hWindParent: ?HWND, hMenu: ?HMENU, hInstance: HINSTANCE, lpParam: ?*anyopaque) !HWND { const window = CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWindParent, hMenu, hInstance, lpParam); if (window) |win| return win; @@ -1293,7 +1293,7 @@ pub fn createWindowExA(dwExStyle: u32, lpClassName: [*:0]const u8, lpWindowName: pub extern "user32" fn CreateWindowExW(dwExStyle: DWORD, lpClassName: [*:0]const u16, lpWindowName: [*:0]const u16, dwStyle: DWORD, X: i32, Y: i32, nWidth: i32, nHeight: i32, hWindParent: ?HWND, hMenu: ?HMENU, hInstance: HINSTANCE, lpParam: ?LPVOID) callconv(WINAPI) ?HWND; pub var pfnCreateWindowExW: @TypeOf(CreateWindowExW) = undefined; -pub fn createWindowExW(dwExStyle: u32, lpClassName: [*:0]const u16, lpWindowName: [*:0]const u16, dwStyle: u32, X: i32, Y: i32, nWidth: i32, nHeight: i32, hWindParent: ?HWND, hMenu: ?HMENU, hInstance: HINSTANCE, lpParam: ?*c_void) !HWND { +pub fn createWindowExW(dwExStyle: u32, lpClassName: [*:0]const u16, lpWindowName: [*:0]const u16, dwStyle: u32, X: i32, Y: i32, nWidth: i32, nHeight: i32, hWindParent: ?HWND, hMenu: ?HMENU, hInstance: HINSTANCE, lpParam: ?*anyopaque) !HWND { const function = selectSymbol(CreateWindowExW, pfnCreateWindowExW, .win2k); const window = function(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWindParent, hMenu, hInstance, lpParam); if (window) |win| return win; diff --git a/lib/std/os/windows/ws2_32.zig b/lib/std/os/windows/ws2_32.zig index a6eb9e07ff..a956242980 100644 --- a/lib/std/os/windows/ws2_32.zig +++ b/lib/std/os/windows/ws2_32.zig @@ -1095,7 +1095,7 @@ pub const addrinfoexA = extern struct { ai_addrlen: usize, ai_canonname: [*:0]u8, ai_addr: *sockaddr, - ai_blob: *c_void, + ai_blob: *anyopaque, ai_bloblen: usize, ai_provider: *GUID, ai_next: *addrinfoexA, @@ -1167,9 +1167,9 @@ pub const pollfd = extern struct { }; pub const TRANSMIT_FILE_BUFFERS = extern struct { - Head: *c_void, + Head: *anyopaque, HeadLength: u32, - Tail: *c_void, + Tail: *anyopaque, TailLength: u32, }; @@ -1186,7 +1186,7 @@ pub const LPFN_TRANSMITFILE = fn ( pub const LPFN_ACCEPTEX = fn ( sListenSocket: SOCKET, sAcceptSocket: SOCKET, - lpOutputBuffer: *c_void, + lpOutputBuffer: *anyopaque, dwReceiveDataLength: u32, dwLocalAddressLength: u32, dwRemoteAddressLength: u32, @@ -1195,7 +1195,7 @@ pub const LPFN_ACCEPTEX = fn ( ) callconv(WINAPI) BOOL; pub const LPFN_GETACCEPTEXSOCKADDRS = fn ( - lpOutputBuffer: *c_void, + lpOutputBuffer: *anyopaque, dwReceiveDataLength: u32, dwLocalAddressLength: u32, dwRemoteAddressLength: u32, @@ -2017,9 +2017,9 @@ pub extern "ws2_32" fn WSAHtons( pub extern "ws2_32" fn WSAIoctl( s: SOCKET, dwIoControlCode: u32, - lpvInBuffer: ?*const c_void, + lpvInBuffer: ?*const anyopaque, cbInBuffer: u32, - lpvOutbuffer: ?*c_void, + lpvOutbuffer: ?*anyopaque, cbOutbuffer: u32, lpcbBytesReturned: *u32, lpOverlapped: ?*OVERLAPPED, @@ -2216,7 +2216,7 @@ pub extern "mswsock" fn TransmitFile( pub extern "mswsock" fn AcceptEx( sListenSocket: SOCKET, sAcceptSocket: SOCKET, - lpOutputBuffer: *c_void, + lpOutputBuffer: *anyopaque, dwReceiveDataLength: u32, dwLocalAddressLength: u32, dwRemoteAddressLength: u32, @@ -2225,7 +2225,7 @@ pub extern "mswsock" fn AcceptEx( ) callconv(WINAPI) BOOL; pub extern "mswsock" fn GetAcceptExSockaddrs( - lpOutputBuffer: *c_void, + lpOutputBuffer: *anyopaque, dwReceiveDataLength: u32, dwLocalAddressLength: u32, dwRemoteAddressLength: u32, @@ -2242,13 +2242,13 @@ pub extern "ws2_32" fn WSAProviderCompleteAsyncCall( pub extern "mswsock" fn EnumProtocolsA( lpiProtocols: ?*i32, - lpProtocolBuffer: *c_void, + lpProtocolBuffer: *anyopaque, lpdwBufferLength: *u32, ) callconv(WINAPI) i32; pub extern "mswsock" fn EnumProtocolsW( lpiProtocols: ?*i32, - lpProtocolBuffer: *c_void, + lpProtocolBuffer: *anyopaque, lpdwBufferLength: *u32, ) callconv(WINAPI) i32; @@ -2259,7 +2259,7 @@ pub extern "mswsock" fn GetAddressByNameA( lpiProtocols: ?*i32, dwResolution: u32, lpServiceAsyncInfo: ?*SERVICE_ASYNC_INFO, - lpCsaddrBuffer: *c_void, + lpCsaddrBuffer: *anyopaque, lpAliasBuffer: ?[*:0]const u8, lpdwAliasBufferLength: *u32, ) callconv(WINAPI) i32; @@ -2271,7 +2271,7 @@ pub extern "mswsock" fn GetAddressByNameW( lpiProtocols: ?*i32, dwResolution: u32, lpServiceAsyncInfo: ?*SERVICE_ASYNC_INFO, - lpCsaddrBuffer: *c_void, + lpCsaddrBuffer: *anyopaque, ldwBufferLEngth: *u32, lpAliasBuffer: ?[*:0]u16, lpdwAliasBufferLength: *u32, diff --git a/lib/std/rand.zig b/lib/std/rand.zig index 46946bcb73..53b536f9ff 100644 --- a/lib/std/rand.zig +++ b/lib/std/rand.zig @@ -29,8 +29,8 @@ pub const Xoshiro256 = @import("rand/Xoshiro256.zig"); pub const Sfc64 = @import("rand/Sfc64.zig"); pub const Random = struct { - ptr: *c_void, - fillFn: fn (ptr: *c_void, buf: []u8) void, + ptr: *anyopaque, + fillFn: fn (ptr: *anyopaque, buf: []u8) void, pub fn init(pointer: anytype, comptime fillFn: fn (ptr: @TypeOf(pointer), buf: []u8) void) Random { const Ptr = @TypeOf(pointer); @@ -38,7 +38,7 @@ pub const Random = struct { assert(@typeInfo(Ptr).Pointer.size == .One); // Must be a single-item pointer assert(@typeInfo(@typeInfo(Ptr).Pointer.child) == .Struct); // Must point to a struct const gen = struct { - fn fill(ptr: *c_void, buf: []u8) void { + fn fill(ptr: *anyopaque, buf: []u8) void { const alignment = @typeInfo(Ptr).Pointer.alignment; const self = @ptrCast(Ptr, @alignCast(alignment, ptr)); fillFn(self, buf); diff --git a/lib/std/special/compiler_rt/emutls.zig b/lib/std/special/compiler_rt/emutls.zig index a15903eab5..e6aa8930e9 100644 --- a/lib/std/special/compiler_rt/emutls.zig +++ b/lib/std/special/compiler_rt/emutls.zig @@ -20,7 +20,7 @@ comptime { } /// public entrypoint for generated code using EmulatedTLS -pub fn __emutls_get_address(control: *emutls_control) callconv(.C) *c_void { +pub fn __emutls_get_address(control: *emutls_control) callconv(.C) *anyopaque { return control.getPointer(); } @@ -47,7 +47,7 @@ const simple_allocator = struct { pub fn advancedAlloc(alignment: u29, size: usize) [*]u8 { const minimal_alignment = std.math.max(@alignOf(usize), alignment); - var aligned_ptr: ?*c_void = undefined; + var aligned_ptr: ?*anyopaque = undefined; if (std.c.posix_memalign(&aligned_ptr, minimal_alignment, size) != 0) { abort(); } @@ -57,7 +57,7 @@ const simple_allocator = struct { /// Resize a slice. pub fn reallocSlice(comptime T: type, slice: []T, len: usize) []T { - var c_ptr: *c_void = @ptrCast(*c_void, slice.ptr); + var c_ptr: *anyopaque = @ptrCast(*anyopaque, slice.ptr); var new_array: [*]T = @ptrCast([*]T, @alignCast( @alignOf(T), std.c.realloc(c_ptr, @sizeOf(T) * len) orelse abort(), @@ -67,14 +67,14 @@ const simple_allocator = struct { /// Free a memory chunk allocated with simple_allocator. pub fn free(ptr: anytype) void { - std.c.free(@ptrCast(*c_void, ptr)); + std.c.free(@ptrCast(*anyopaque, ptr)); } }; /// Simple array of ?ObjectPointer with automatic resizing and /// automatic storage allocation. const ObjectArray = struct { - const ObjectPointer = *c_void; + const ObjectPointer = *anyopaque; // content of the array slots: []?ObjectPointer, @@ -143,7 +143,7 @@ const ObjectArray = struct { @memset(data, 0, size); } - self.slots[index] = @ptrCast(*c_void, data); + self.slots[index] = @ptrCast(*anyopaque, data); } return self.slots[index].?; @@ -189,7 +189,7 @@ const current_thread_storage = struct { /// Set casted thread specific value. fn setspecific(new: ?*ObjectArray) void { - if (std.c.pthread_setspecific(current_thread_storage.key, @ptrCast(*c_void, new)) != 0) { + if (std.c.pthread_setspecific(current_thread_storage.key, @ptrCast(*anyopaque, new)) != 0) { abort(); } } @@ -202,7 +202,7 @@ const current_thread_storage = struct { } /// Invoked by pthread specific destructor. the passed argument is the ObjectArray pointer. - fn deinit(arrayPtr: *c_void) callconv(.C) void { + fn deinit(arrayPtr: *anyopaque) callconv(.C) void { var array = @ptrCast( *ObjectArray, @alignCast(@alignOf(ObjectArray), arrayPtr), @@ -228,11 +228,11 @@ const emutls_control = extern struct { index: usize, // object address, when in single thread env (not used) - address: *c_void, + address: *anyopaque, }, // null or non-zero initial value for the object - default_value: ?*c_void, + default_value: ?*anyopaque, // global Mutex used to serialize control.index initialization. var mutex: std.c.pthread_mutex_t = std.c.PTHREAD_MUTEX_INITIALIZER; @@ -292,12 +292,12 @@ const emutls_control = extern struct { .size = @sizeOf(T), .alignment = @alignOf(T), .object = .{ .index = 0 }, - .default_value = @ptrCast(?*c_void, default_value), + .default_value = @ptrCast(?*anyopaque, default_value), }; } /// Get the pointer on allocated storage for emutls variable. - pub fn getPointer(self: *emutls_control) *c_void { + pub fn getPointer(self: *emutls_control) *anyopaque { // ensure current_thread_storage initialization is done current_thread_storage.init_once.call(); diff --git a/lib/std/start_windows_tls.zig b/lib/std/start_windows_tls.zig index 4b6db8bb48..7c9930fe6b 100644 --- a/lib/std/start_windows_tls.zig +++ b/lib/std/start_windows_tls.zig @@ -31,10 +31,10 @@ comptime { //}; // This is the workaround because we can't do @ptrToInt at comptime like that. pub const IMAGE_TLS_DIRECTORY = extern struct { - StartAddressOfRawData: *c_void, - EndAddressOfRawData: *c_void, - AddressOfIndex: *c_void, - AddressOfCallBacks: *c_void, + StartAddressOfRawData: *anyopaque, + EndAddressOfRawData: *anyopaque, + AddressOfIndex: *anyopaque, + AddressOfCallBacks: *anyopaque, SizeOfZeroFill: u32, Characteristics: u32, }; diff --git a/lib/std/zig/c_builtins.zig b/lib/std/zig/c_builtins.zig index 3bd4becbeb..366799ec53 100644 --- a/lib/std/zig/c_builtins.zig +++ b/lib/std/zig/c_builtins.zig @@ -129,7 +129,7 @@ pub inline fn __builtin_strcmp(s1: [*c]const u8, s2: [*c]const u8) c_int { return @as(c_int, std.cstr.cmp(s1, s2)); } -pub inline fn __builtin_object_size(ptr: ?*const c_void, ty: c_int) usize { +pub inline fn __builtin_object_size(ptr: ?*const anyopaque, ty: c_int) usize { _ = ptr; // clang semantics match gcc's: https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html // If it is not possible to determine which objects ptr points to at compile time, @@ -141,36 +141,36 @@ pub inline fn __builtin_object_size(ptr: ?*const c_void, ty: c_int) usize { } pub inline fn __builtin___memset_chk( - dst: ?*c_void, + dst: ?*anyopaque, val: c_int, len: usize, remaining: usize, -) ?*c_void { +) ?*anyopaque { if (len > remaining) @panic("std.c.builtins.memset_chk called with len > remaining"); return __builtin_memset(dst, val, len); } -pub inline fn __builtin_memset(dst: ?*c_void, val: c_int, len: usize) ?*c_void { +pub inline fn __builtin_memset(dst: ?*anyopaque, val: c_int, len: usize) ?*anyopaque { const dst_cast = @ptrCast([*c]u8, dst); @memset(dst_cast, @bitCast(u8, @truncate(i8, val)), len); return dst; } pub inline fn __builtin___memcpy_chk( - noalias dst: ?*c_void, - noalias src: ?*const c_void, + noalias dst: ?*anyopaque, + noalias src: ?*const anyopaque, len: usize, remaining: usize, -) ?*c_void { +) ?*anyopaque { if (len > remaining) @panic("std.c.builtins.memcpy_chk called with len > remaining"); return __builtin_memcpy(dst, src, len); } pub inline fn __builtin_memcpy( - noalias dst: ?*c_void, - noalias src: ?*const c_void, + noalias dst: ?*anyopaque, + noalias src: ?*const anyopaque, len: usize, -) ?*c_void { +) ?*anyopaque { const dst_cast = @ptrCast([*c]u8, dst); const src_cast = @ptrCast([*c]const u8, src); @@ -232,4 +232,4 @@ pub inline fn __builtin_isinf_sign(x: anytype) c_int { // It is used in a run-translated-c test and a test-translate-c test to ensure that non-implemented // builtins are correctly demoted. If you implement __builtin_alloca_with_align, please update the // run-translated-c test and the test-translate-c test to use a different non-implemented builtin. -// pub fn __builtin_alloca_with_align(size: usize, alignment: usize) callconv(.Inline) *c_void {} +// pub fn __builtin_alloca_with_align(size: usize, alignment: usize) callconv(.Inline) *anyopaque {} diff --git a/lib/std/zig/c_translation.zig b/lib/std/zig/c_translation.zig index 3c7749b66a..0062b071c2 100644 --- a/lib/std/zig/c_translation.zig +++ b/lib/std/zig/c_translation.zig @@ -110,15 +110,15 @@ test "cast" { try testing.expectEqual(@intToPtr(*u8, 2), cast(*u8, @intToPtr(*const u8, 2))); try testing.expectEqual(@intToPtr(*u8, 2), cast(*u8, @intToPtr(*volatile u8, 2))); - try testing.expectEqual(@intToPtr(?*c_void, 2), cast(?*c_void, @intToPtr(*u8, 2))); + try testing.expectEqual(@intToPtr(?*anyopaque, 2), cast(?*anyopaque, @intToPtr(*u8, 2))); var foo: c_int = -1; - try testing.expect(cast(*c_void, -1) == @intToPtr(*c_void, @bitCast(usize, @as(isize, -1)))); - try testing.expect(cast(*c_void, foo) == @intToPtr(*c_void, @bitCast(usize, @as(isize, -1)))); - try testing.expect(cast(?*c_void, -1) == @intToPtr(?*c_void, @bitCast(usize, @as(isize, -1)))); - try testing.expect(cast(?*c_void, foo) == @intToPtr(?*c_void, @bitCast(usize, @as(isize, -1)))); + try testing.expect(cast(*anyopaque, -1) == @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1)))); + try testing.expect(cast(*anyopaque, foo) == @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1)))); + try testing.expect(cast(?*anyopaque, -1) == @intToPtr(?*anyopaque, @bitCast(usize, @as(isize, -1)))); + try testing.expect(cast(?*anyopaque, foo) == @intToPtr(?*anyopaque, @bitCast(usize, @as(isize, -1)))); - const FnPtr = ?fn (*c_void) void; + const FnPtr = ?fn (*anyopaque) void; try testing.expect(cast(FnPtr, 0) == @intToPtr(FnPtr, @as(usize, 0))); try testing.expect(cast(FnPtr, foo) == @intToPtr(FnPtr, @bitCast(usize, @as(isize, -1)))); } @@ -133,13 +133,13 @@ pub fn sizeof(target: anytype) usize { // We cannot distinguish those types in Zig, so use pointer size. return @sizeOf(T); }, - .Null => return @sizeOf(*c_void), + .Null => return @sizeOf(*anyopaque), .Void => { // Note: sizeof(void) is 1 on clang/gcc and 0 on MSVC. return 1; }, .Opaque => { - if (T == c_void) { + if (T == anyopaque) { // Note: sizeof(void) is 1 on clang/gcc and 0 on MSVC. return 1; } else { @@ -175,7 +175,7 @@ pub fn sizeof(target: anytype) usize { // When zero sized pointers are removed, this case will no // longer be reachable and can be deleted. if (@sizeOf(T) == 0) { - return @sizeOf(*c_void); + return @sizeOf(*anyopaque); } return @sizeOf(T); }, @@ -195,7 +195,7 @@ pub fn sizeof(target: anytype) usize { test "sizeof" { const S = extern struct { a: u32 }; - const ptr_size = @sizeOf(*c_void); + const ptr_size = @sizeOf(*anyopaque); try testing.expect(sizeof(u32) == 4); try testing.expect(sizeof(@as(u32, 2)) == 4); @@ -215,7 +215,7 @@ test "sizeof" { try testing.expect(sizeof([*c]u32) == ptr_size); try testing.expect(sizeof(?*u32) == ptr_size); try testing.expect(sizeof(?[*]u32) == ptr_size); - try testing.expect(sizeof(*c_void) == ptr_size); + try testing.expect(sizeof(*anyopaque) == ptr_size); try testing.expect(sizeof(*void) == ptr_size); try testing.expect(sizeof(null) == ptr_size); @@ -230,7 +230,7 @@ test "sizeof" { try testing.expect(sizeof(sizeof) == @sizeOf(@TypeOf(sizeof))); try testing.expect(sizeof(void) == 1); - try testing.expect(sizeof(c_void) == 1); + try testing.expect(sizeof(anyopaque) == 1); } pub const CIntLiteralRadix = enum { decimal, octal, hexadecimal }; diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index b4cc67de28..337021eaa8 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -87,6 +87,29 @@ test "zig fmt: rewrite @byteOffsetOf to @offsetOf" { ); } +// TODO Remove this after zig 0.10.0 is released. +test "zig fmt: rewrite c_void to anyopaque" { + try testTransform( + \\const Foo = struct { + \\ c_void: *c_void, + \\}; + \\ + \\fn foo(a: ?*c_void) !*c_void { + \\ return a orelse unreachable; + \\} + \\ + , + \\const Foo = struct { + \\ c_void: *anyopaque, + \\}; + \\ + \\fn foo(a: ?*anyopaque) !*anyopaque { + \\ return a orelse unreachable; + \\} + \\ + ); +} + test "zig fmt: simple top level comptime block" { try testCanonical( \\// line comment diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig index a703e1f3ea..41e96605d2 100644 --- a/lib/std/zig/render.zig +++ b/lib/std/zig/render.zig @@ -183,7 +183,21 @@ fn renderExpression(gpa: Allocator, ais: *Ais, tree: Ast, node: Ast.Node.Index, const node_tags = tree.nodes.items(.tag); const datas = tree.nodes.items(.data); switch (node_tags[node]) { - .identifier, + // TODO remove this c_void -> anyopaque rewrite after the 0.10.0 release. + // Also get rid of renderSpace() as it will no longer be necessary. + .identifier => { + const token_index = main_tokens[node]; + + const lexeme = tokenSliceForRender(tree, token_index); + if (mem.eql(u8, lexeme, "c_void")) { + try ais.writer().writeAll("anyopaque"); + } else { + try ais.writer().writeAll(lexeme); + } + + return renderSpace(ais, tree, token_index, lexeme.len, space); + }, + .integer_literal, .float_literal, .char_literal, @@ -2284,13 +2298,16 @@ const Space = enum { }; fn renderToken(ais: *Ais, tree: Ast, token_index: Ast.TokenIndex, space: Space) Error!void { + const lexeme = tokenSliceForRender(tree, token_index); + try ais.writer().writeAll(lexeme); + try renderSpace(ais, tree, token_index, lexeme.len, space); +} + +fn renderSpace(ais: *Ais, tree: Ast, token_index: Ast.TokenIndex, lexeme_len: usize, space: Space) Error!void { const token_tags = tree.tokens.items(.tag); const token_starts = tree.tokens.items(.start); const token_start = token_starts[token_index]; - const lexeme = tokenSliceForRender(tree, token_index); - - try ais.writer().writeAll(lexeme); if (space == .skip) return; @@ -2298,7 +2315,7 @@ fn renderToken(ais: *Ais, tree: Ast, token_index: Ast.TokenIndex, space: Space) try ais.writer().writeByte(','); } - const comment = try renderComments(ais, tree, token_start + lexeme.len, token_starts[token_index + 1]); + const comment = try renderComments(ais, tree, token_start + lexeme_len, token_starts[token_index + 1]); switch (space) { .none => {}, .space => if (!comment) try ais.writer().writeByte(' '), diff --git a/src/AstGen.zig b/src/AstGen.zig index 30efa47f4c..a3a63be09f 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -7597,6 +7597,7 @@ fn calleeExpr( const primitives = std.ComptimeStringMap(Zir.Inst.Ref, .{ .{ "anyerror", .anyerror_type }, .{ "anyframe", .anyframe_type }, + .{ "anyopaque", .anyopaque_type }, .{ "bool", .bool_type }, .{ "c_int", .c_int_type }, .{ "c_long", .c_long_type }, @@ -7607,7 +7608,6 @@ const primitives = std.ComptimeStringMap(Zir.Inst.Ref, .{ .{ "c_ulong", .c_ulong_type }, .{ "c_ulonglong", .c_ulonglong_type }, .{ "c_ushort", .c_ushort_type }, - .{ "c_void", .c_void_type }, .{ "comptime_float", .comptime_float_type }, .{ "comptime_int", .comptime_int_type }, .{ "f128", .f128_type }, @@ -8324,7 +8324,7 @@ fn rvalue( as_ty | @enumToInt(Zir.Inst.Ref.f32_type), as_ty | @enumToInt(Zir.Inst.Ref.f64_type), as_ty | @enumToInt(Zir.Inst.Ref.f128_type), - as_ty | @enumToInt(Zir.Inst.Ref.c_void_type), + as_ty | @enumToInt(Zir.Inst.Ref.anyopaque_type), as_ty | @enumToInt(Zir.Inst.Ref.bool_type), as_ty | @enumToInt(Zir.Inst.Ref.void_type), as_ty | @enumToInt(Zir.Inst.Ref.type_type), diff --git a/src/Sema.zig b/src/Sema.zig index 12578c56c5..044084a349 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -12354,9 +12354,9 @@ fn coerce( } } - // cast from *T and [*]T to *c_void + // cast from *T and [*]T to *anyopaque // but don't do it if the source type is a double pointer - if (dest_info.pointee_type.tag() == .c_void and inst_ty.zigTypeTag() == .Pointer and + if (dest_info.pointee_type.tag() == .anyopaque and inst_ty.zigTypeTag() == .Pointer and inst_ty.childType().zigTypeTag() != .Pointer) { return sema.coerceCompatiblePtrs(block, dest_ty, inst, inst_src); @@ -14809,7 +14809,7 @@ fn typeHasOnePossibleValue( .const_slice_u8, .const_slice, .mut_slice, - .c_void, + .anyopaque, .optional, .optional_single_mut_pointer, .optional_single_const_pointer, @@ -15026,7 +15026,7 @@ pub fn addType(sema: *Sema, ty: Type) !Air.Inst.Ref { .f32 => return .f32_type, .f64 => return .f64_type, .f128 => return .f128_type, - .c_void => return .c_void_type, + .anyopaque => return .anyopaque_type, .bool => return .bool_type, .void => return .void_type, .type => return .type_type, diff --git a/src/Zir.zig b/src/Zir.zig index d568cb2e8c..df21b9e81e 100644 --- a/src/Zir.zig +++ b/src/Zir.zig @@ -1632,7 +1632,7 @@ pub const Inst = struct { f32_type, f64_type, f128_type, - c_void_type, + anyopaque_type, bool_type, void_type, type_type, @@ -1805,9 +1805,9 @@ pub const Inst = struct { .ty = Type.initTag(.type), .val = Value.initTag(.f128_type), }, - .c_void_type = .{ + .anyopaque_type = .{ .ty = Type.initTag(.type), - .val = Value.initTag(.c_void_type), + .val = Value.initTag(.anyopaque_type), }, .bool_type = .{ .ty = Type.initTag(.type), diff --git a/src/clang.zig b/src/clang.zig index 8a8d794e41..ffc21c3461 100644 --- a/src/clang.zig +++ b/src/clang.zig @@ -9,7 +9,7 @@ pub const SourceLocation = extern struct { }; pub const QualType = extern struct { - ptr: ?*c_void, + ptr: ?*anyopaque, pub const getCanonicalType = ZigClangQualType_getCanonicalType; extern fn ZigClangQualType_getCanonicalType(QualType) QualType; @@ -37,7 +37,7 @@ pub const QualType = extern struct { }; pub const APValueLValueBase = extern struct { - Ptr: ?*c_void, + Ptr: ?*anyopaque, CallIndex: c_uint, Version: c_uint, @@ -85,7 +85,7 @@ pub const APValue = extern struct { pub const ExprEvalResult = extern struct { HasSideEffects: bool, HasUndefinedBehavior: bool, - SmallVectorImpl: ?*c_void, + SmallVectorImpl: ?*anyopaque, Val: APValue, }; @@ -161,7 +161,7 @@ pub const ASTUnit = opaque { extern fn ZigClangASTUnit_getSourceManager(*ASTUnit) *SourceManager; pub const visitLocalTopLevelDecls = ZigClangASTUnit_visitLocalTopLevelDecls; - extern fn ZigClangASTUnit_visitLocalTopLevelDecls(*ASTUnit, context: ?*c_void, Fn: ?fn (?*c_void, *const Decl) callconv(.C) bool) bool; + extern fn ZigClangASTUnit_visitLocalTopLevelDecls(*ASTUnit, context: ?*anyopaque, Fn: ?fn (?*anyopaque, *const Decl) callconv(.C) bool) bool; pub const getLocalPreprocessingEntities_begin = ZigClangASTUnit_getLocalPreprocessingEntities_begin; extern fn ZigClangASTUnit_getLocalPreprocessingEntities_begin(*ASTUnit) PreprocessingRecord.iterator; @@ -418,7 +418,7 @@ pub const EnumDecl = opaque { extern fn ZigClangEnumDecl_enumerator_end(*const EnumDecl) enumerator_iterator; pub const enumerator_iterator = extern struct { - ptr: *c_void, + ptr: *anyopaque, pub const next = ZigClangEnumDecl_enumerator_iterator_next; extern fn ZigClangEnumDecl_enumerator_iterator_next(enumerator_iterator) enumerator_iterator; @@ -778,7 +778,7 @@ pub const RecordDecl = opaque { extern fn ZigClangRecordDecl_field_end(*const RecordDecl) field_iterator; pub const field_iterator = extern struct { - ptr: *c_void, + ptr: *anyopaque, pub const next = ZigClangRecordDecl_field_iterator_next; extern fn ZigClangRecordDecl_field_iterator_next(field_iterator) field_iterator; diff --git a/src/crash_report.zig b/src/crash_report.zig index 5d96ebc669..88b59e8952 100644 --- a/src/crash_report.zig +++ b/src/crash_report.zig @@ -179,7 +179,7 @@ pub fn attachSegfaultHandler() void { os.sigaction(os.SIG.BUS, &act, null); } -fn handleSegfaultLinux(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const c_void) callconv(.C) noreturn { +fn handleSegfaultLinux(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const anyopaque) callconv(.C) noreturn { // TODO: use alarm() here to prevent infinite loops PanicSwitch.preDispatch(); diff --git a/src/stage1/all_types.hpp b/src/stage1/all_types.hpp index 1c50134194..f1308f3a94 100644 --- a/src/stage1/all_types.hpp +++ b/src/stage1/all_types.hpp @@ -2076,7 +2076,7 @@ struct CodeGen { ZigType *entry_bool; ZigType *entry_c_int[CIntTypeCount]; ZigType *entry_c_longdouble; - ZigType *entry_c_void; + ZigType *entry_anyopaque; ZigType *entry_u8; ZigType *entry_u16; ZigType *entry_u32; diff --git a/src/stage1/codegen.cpp b/src/stage1/codegen.cpp index 44600ffa45..ff4d44113e 100644 --- a/src/stage1/codegen.cpp +++ b/src/stage1/codegen.cpp @@ -9014,9 +9014,9 @@ static void define_builtin_types(CodeGen *g) { g->builtin_types.entry_i64 = get_int_type(g, true, 64); { - g->builtin_types.entry_c_void = get_opaque_type(g, nullptr, nullptr, "c_void", - buf_create_from_str("c_void")); - g->primitive_type_table.put(&g->builtin_types.entry_c_void->name, g->builtin_types.entry_c_void); + g->builtin_types.entry_anyopaque = get_opaque_type(g, nullptr, nullptr, "anyopaque", + buf_create_from_str("anyopaque")); + g->primitive_type_table.put(&g->builtin_types.entry_anyopaque->name, g->builtin_types.entry_anyopaque); } { diff --git a/src/stage1/ir.cpp b/src/stage1/ir.cpp index a78b8a3018..3037717614 100644 --- a/src/stage1/ir.cpp +++ b/src/stage1/ir.cpp @@ -7884,18 +7884,18 @@ static Stage1AirInst *ir_analyze_cast(IrAnalyze *ira, Scope *scope, AstNode *sou } } - // cast from *T and [*]T to *c_void and ?*c_void + // cast from *T and [*]T to *anyopaque and ?*anyopaque // but don't do it if the actual type is a double pointer if (is_pointery_and_elem_is_not_pointery(actual_type)) { ZigType *dest_ptr_type = nullptr; if (wanted_type->id == ZigTypeIdPointer && actual_type->id != ZigTypeIdOptional && - wanted_type->data.pointer.child_type == ira->codegen->builtin_types.entry_c_void) + wanted_type->data.pointer.child_type == ira->codegen->builtin_types.entry_anyopaque) { dest_ptr_type = wanted_type; } else if (wanted_type->id == ZigTypeIdOptional && wanted_type->data.maybe.child_type->id == ZigTypeIdPointer && - wanted_type->data.maybe.child_type->data.pointer.child_type == ira->codegen->builtin_types.entry_c_void) + wanted_type->data.maybe.child_type->data.pointer.child_type == ira->codegen->builtin_types.entry_anyopaque) { dest_ptr_type = wanted_type->data.maybe.child_type; } diff --git a/src/tracy.zig b/src/tracy.zig index 908092fb8c..033cf1bcf0 100644 --- a/src/tracy.zig +++ b/src/tracy.zig @@ -284,14 +284,14 @@ extern fn ___tracy_emit_zone_name(ctx: ___tracy_c_zone_context, txt: [*]const u8 extern fn ___tracy_emit_zone_color(ctx: ___tracy_c_zone_context, color: u32) void; extern fn ___tracy_emit_zone_value(ctx: ___tracy_c_zone_context, value: u64) void; extern fn ___tracy_emit_zone_end(ctx: ___tracy_c_zone_context) void; -extern fn ___tracy_emit_memory_alloc(ptr: *const c_void, size: usize, secure: c_int) void; -extern fn ___tracy_emit_memory_alloc_callstack(ptr: *const c_void, size: usize, depth: c_int, secure: c_int) void; -extern fn ___tracy_emit_memory_free(ptr: *const c_void, secure: c_int) void; -extern fn ___tracy_emit_memory_free_callstack(ptr: *const c_void, depth: c_int, secure: c_int) void; -extern fn ___tracy_emit_memory_alloc_named(ptr: *const c_void, size: usize, secure: c_int, name: [*:0]const u8) void; -extern fn ___tracy_emit_memory_alloc_callstack_named(ptr: *const c_void, size: usize, depth: c_int, secure: c_int, name: [*:0]const u8) void; -extern fn ___tracy_emit_memory_free_named(ptr: *const c_void, secure: c_int, name: [*:0]const u8) void; -extern fn ___tracy_emit_memory_free_callstack_named(ptr: *const c_void, depth: c_int, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_alloc(ptr: *const anyopaque, size: usize, secure: c_int) void; +extern fn ___tracy_emit_memory_alloc_callstack(ptr: *const anyopaque, size: usize, depth: c_int, secure: c_int) void; +extern fn ___tracy_emit_memory_free(ptr: *const anyopaque, secure: c_int) void; +extern fn ___tracy_emit_memory_free_callstack(ptr: *const anyopaque, depth: c_int, secure: c_int) void; +extern fn ___tracy_emit_memory_alloc_named(ptr: *const anyopaque, size: usize, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_alloc_callstack_named(ptr: *const anyopaque, size: usize, depth: c_int, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_free_named(ptr: *const anyopaque, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_free_callstack_named(ptr: *const anyopaque, depth: c_int, secure: c_int, name: [*:0]const u8) void; extern fn ___tracy_emit_message(txt: [*]const u8, size: usize, callstack: c_int) void; extern fn ___tracy_emit_messageL(txt: [*:0]const u8, callstack: c_int) void; extern fn ___tracy_emit_messageC(txt: [*]const u8, size: usize, color: u32, callstack: c_int) void; diff --git a/src/translate_c.zig b/src/translate_c.zig index 03bb59469a..79d68ff51b 100644 --- a/src/translate_c.zig +++ b/src/translate_c.zig @@ -448,13 +448,13 @@ fn prepopulateGlobalNameTable(ast_unit: *clang.ASTUnit, c: *Context) !void { } } -fn declVisitorNamesOnlyC(context: ?*c_void, decl: *const clang.Decl) callconv(.C) bool { +fn declVisitorNamesOnlyC(context: ?*anyopaque, decl: *const clang.Decl) callconv(.C) bool { const c = @ptrCast(*Context, @alignCast(@alignOf(Context), context)); declVisitorNamesOnly(c, decl) catch return false; return true; } -fn declVisitorC(context: ?*c_void, decl: *const clang.Decl) callconv(.C) bool { +fn declVisitorC(context: ?*anyopaque, decl: *const clang.Decl) callconv(.C) bool { const c = @ptrCast(*Context, @alignCast(@alignOf(Context), context)); declVisitor(c, decl) catch return false; return true; @@ -698,7 +698,7 @@ fn visitFnDecl(c: *Context, fn_decl: *const clang.FunctionDecl) Error!void { // add return statement if the function didn't have one blk: { const maybe_body = try block_scope.complete(c); - if (fn_ty.getNoReturnAttr() or isCVoid(return_qt) or maybe_body.isNoreturn(false)) { + if (fn_ty.getNoReturnAttr() or isAnyopaque(return_qt) or maybe_body.isNoreturn(false)) { proto_node.data.body = maybe_body; break :blk; } @@ -4618,7 +4618,7 @@ fn transType(c: *Context, scope: *Scope, ty: *const clang.Type, source_loc: clan .Builtin => { const builtin_ty = @ptrCast(*const clang.BuiltinType, ty); return Tag.type.create(c.arena, switch (builtin_ty.getKind()) { - .Void => "c_void", + .Void => "anyopaque", .Bool => "bool", .Char_U, .UChar, .Char_S, .Char8 => "u8", .SChar => "i8", @@ -4822,7 +4822,7 @@ fn qualTypeWasDemotedToOpaque(c: *Context, qt: clang.QualType) bool { } } -fn isCVoid(qt: clang.QualType) bool { +fn isAnyopaque(qt: clang.QualType) bool { const ty = qt.getTypePtr(); if (ty.getTypeClass() == .Builtin) { const builtin_ty = @ptrCast(*const clang.BuiltinType, ty); @@ -4955,8 +4955,8 @@ fn finishTransFnProto( break :blk Tag.noreturn_type.init(); } else { const return_qt = fn_ty.getReturnType(); - if (isCVoid(return_qt)) { - // convert primitive c_void to actual void (only for return type) + if (isAnyopaque(return_qt)) { + // convert primitive anyopaque to actual void (only for return type) break :blk Tag.void_type.init(); } else { break :blk transQualType(c, scope, return_qt, source_loc) catch |err| switch (err) { @@ -6096,7 +6096,7 @@ fn parseCSpecifierQualifierList(c: *Context, m: *MacroCtx, scope: *Scope, allow_ return try Tag.identifier.create(c.arena, mangled_name); } }, - .Keyword_void => return try Tag.type.create(c.arena, "c_void"), + .Keyword_void => return try Tag.type.create(c.arena, "anyopaque"), .Keyword_bool => return try Tag.type.create(c.arena, "bool"), .Keyword_char, .Keyword_int, diff --git a/src/type.zig b/src/type.zig index 0a2b6f4675..c5ba6c03c7 100644 --- a/src/type.zig +++ b/src/type.zig @@ -68,7 +68,7 @@ pub const Type = extern union { .error_set_merged, => return .ErrorSet, - .c_void, .@"opaque" => return .Opaque, + .anyopaque, .@"opaque" => return .Opaque, .bool => return .Bool, .void => return .Void, .type => return .Type, @@ -764,7 +764,7 @@ pub const Type = extern union { .c_longlong, .c_ulonglong, .c_longdouble, - .c_void, + .anyopaque, .f16, .f32, .f64, @@ -965,7 +965,7 @@ pub const Type = extern union { .c_longlong, .c_ulonglong, .c_longdouble, - .c_void, + .anyopaque, .f16, .f32, .f64, @@ -1257,7 +1257,7 @@ pub const Type = extern union { .c_longlong, .c_ulonglong, .c_longdouble, - .c_void, + .anyopaque, .f16, .f32, .f64, @@ -1365,7 +1365,7 @@ pub const Type = extern union { .f32, .f64, .f128, - .c_void, + .anyopaque, .bool, .void, .anyerror, @@ -1476,7 +1476,7 @@ pub const Type = extern union { .c_longlong => return Value.initTag(.c_longlong_type), .c_ulonglong => return Value.initTag(.c_ulonglong_type), .c_longdouble => return Value.initTag(.c_longdouble_type), - .c_void => return Value.initTag(.c_void_type), + .anyopaque => return Value.initTag(.anyopaque_type), .f16 => return Value.initTag(.f16_type), .f32 => return Value.initTag(.f32_type), .f64 => return Value.initTag(.f64_type), @@ -1653,7 +1653,7 @@ pub const Type = extern union { return payload.error_set.hasCodeGenBits() or payload.payload.hasCodeGenBits(); }, - .c_void, + .anyopaque, .void, .type, .comptime_int, @@ -1897,7 +1897,7 @@ pub const Type = extern union { .empty_struct, .void, - .c_void, + .anyopaque, => return 0, .empty_struct_literal, @@ -1942,7 +1942,7 @@ pub const Type = extern union { .extern_options => unreachable, // missing call to resolveTypeFields .type_info => unreachable, // missing call to resolveTypeFields - .c_void, + .anyopaque, .type, .comptime_int, .comptime_float, @@ -2116,7 +2116,7 @@ pub const Type = extern union { .fn_naked_noreturn_no_args => unreachable, // represents machine code; not a pointer .fn_ccc_void_no_args => unreachable, // represents machine code; not a pointer .function => unreachable, // represents machine code; not a pointer - .c_void => unreachable, + .anyopaque => unreachable, .void => unreachable, .type => unreachable, .comptime_int => unreachable, @@ -3283,7 +3283,7 @@ pub const Type = extern union { .const_slice_u8, .const_slice, .mut_slice, - .c_void, + .anyopaque, .optional, .optional_single_mut_pointer, .optional_single_const_pointer, @@ -3860,7 +3860,7 @@ pub const Type = extern union { f32, f64, f128, - c_void, + anyopaque, bool, void, type, @@ -3975,7 +3975,7 @@ pub const Type = extern union { .f32, .f64, .f128, - .c_void, + .anyopaque, .bool, .void, .type, diff --git a/src/value.zig b/src/value.zig index 5df194d511..e3d315b6e4 100644 --- a/src/value.zig +++ b/src/value.zig @@ -48,7 +48,7 @@ pub const Value = extern union { f32_type, f64_type, f128_type, - c_void_type, + anyopaque_type, bool_type, void_type, type_type, @@ -204,7 +204,7 @@ pub const Value = extern union { .f32_type, .f64_type, .f128_type, - .c_void_type, + .anyopaque_type, .bool_type, .void_type, .type_type, @@ -395,7 +395,7 @@ pub const Value = extern union { .f32_type, .f64_type, .f128_type, - .c_void_type, + .anyopaque_type, .bool_type, .void_type, .type_type, @@ -625,7 +625,7 @@ pub const Value = extern union { .f32_type => return out_stream.writeAll("f32"), .f64_type => return out_stream.writeAll("f64"), .f128_type => return out_stream.writeAll("f128"), - .c_void_type => return out_stream.writeAll("c_void"), + .anyopaque_type => return out_stream.writeAll("anyopaque"), .bool_type => return out_stream.writeAll("bool"), .void_type => return out_stream.writeAll("void"), .type_type => return out_stream.writeAll("type"), @@ -804,7 +804,7 @@ pub const Value = extern union { .f32_type => Type.initTag(.f32), .f64_type => Type.initTag(.f64), .f128_type => Type.initTag(.f128), - .c_void_type => Type.initTag(.c_void), + .anyopaque_type => Type.initTag(.anyopaque), .bool_type => Type.initTag(.bool), .void_type => Type.initTag(.void), .type_type => Type.initTag(.type), diff --git a/test/behavior/async_fn.zig b/test/behavior/async_fn.zig index b423ce8d1f..434ef5b42c 100644 --- a/test/behavior/async_fn.zig +++ b/test/behavior/async_fn.zig @@ -1631,9 +1631,9 @@ test "nosuspend resume async function calls" { try expectEqual(@as(i32, 42), (try await frame_d).b); } -test "avoid forcing frame alignment resolution implicit cast to *c_void" { +test "avoid forcing frame alignment resolution implicit cast to *anyopaque" { const S = struct { - var x: ?*c_void = null; + var x: ?*anyopaque = null; fn foo() bool { suspend { diff --git a/test/behavior/bugs/2578.zig b/test/behavior/bugs/2578.zig index 547aee9b22..b27d73415e 100644 --- a/test/behavior/bugs/2578.zig +++ b/test/behavior/bugs/2578.zig @@ -5,7 +5,7 @@ const Foo = struct { var foo: Foo = undefined; const t = &foo; -fn bar(pointer: ?*c_void) void { +fn bar(pointer: ?*anyopaque) void { _ = pointer; } diff --git a/test/behavior/cast_llvm.zig b/test/behavior/cast_llvm.zig index df8d0ba515..278bd2f7a6 100644 --- a/test/behavior/cast_llvm.zig +++ b/test/behavior/cast_llvm.zig @@ -31,14 +31,14 @@ fn expectFloatToInt(comptime F: type, f: F, comptime I: type, i: I) !void { try expect(@floatToInt(I, f) == i); } -test "implicit cast from [*]T to ?*c_void" { +test "implicit cast from [*]T to ?*anyopaque" { var a = [_]u8{ 3, 2, 1 }; var runtime_zero: usize = 0; incrementVoidPtrArray(a[runtime_zero..].ptr, 3); try expect(std.mem.eql(u8, &a, &[_]u8{ 4, 3, 2 })); } -fn incrementVoidPtrArray(array: ?*c_void, len: usize) void { +fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void { var n: usize = 0; while (n < len) : (n += 1) { @ptrCast([*]u8, array.?)[n] += 1; @@ -50,18 +50,18 @@ test "compile time int to ptr of function" { } pub const FUNCTION_CONSTANT = @intToPtr(PFN_void, maxInt(usize)); -pub const PFN_void = fn (*c_void) callconv(.C) void; +pub const PFN_void = fn (*anyopaque) callconv(.C) void; fn foobar(func: PFN_void) !void { try std.testing.expect(@ptrToInt(func) == maxInt(usize)); } -test "implicit ptr to *c_void" { +test "implicit ptr to *anyopaque" { var a: u32 = 1; - var ptr: *align(@alignOf(u32)) c_void = &a; + var ptr: *align(@alignOf(u32)) anyopaque = &a; var b: *u32 = @ptrCast(*u32, ptr); try expect(b.* == 1); - var ptr2: ?*align(@alignOf(u32)) c_void = &a; + var ptr2: ?*align(@alignOf(u32)) anyopaque = &a; var c: *u32 = @ptrCast(*u32, ptr2.?); try expect(c.* == 1); } @@ -135,13 +135,13 @@ test "implicit cast from *[N]T to ?[*]T" { try expect(std.mem.eql(u16, x.?[0..4], y[0..4])); } -test "implicit cast from *T to ?*c_void" { +test "implicit cast from *T to ?*anyopaque" { var a: u8 = 1; incrementVoidPtrValue(&a); try std.testing.expect(a == 2); } -fn incrementVoidPtrValue(value: ?*c_void) void { +fn incrementVoidPtrValue(value: ?*anyopaque) void { @ptrCast(*u8, value.?).* += 1; } @@ -188,8 +188,8 @@ test "cast between [*c]T and ?[*:0]T on fn parameter" { var global_struct: struct { f0: usize } = undefined; test "assignment to optional pointer result loc" { - var foo: struct { ptr: ?*c_void } = .{ .ptr = &global_struct }; - try expect(foo.ptr.? == @ptrCast(*c_void, &global_struct)); + var foo: struct { ptr: ?*anyopaque } = .{ .ptr = &global_struct }; + try expect(foo.ptr.? == @ptrCast(*anyopaque, &global_struct)); } test "cast between *[N]void and []void" { diff --git a/test/behavior/ptrcast_stage1.zig b/test/behavior/ptrcast_stage1.zig index 666b547875..3bf6181a19 100644 --- a/test/behavior/ptrcast_stage1.zig +++ b/test/behavior/ptrcast_stage1.zig @@ -64,10 +64,10 @@ test "comptime ptrcast keeps larger alignment" { } } -test "implicit optional pointer to optional c_void pointer" { +test "implicit optional pointer to optional anyopaque pointer" { var buf: [4]u8 = "aoeu".*; var x: ?[*]u8 = &buf; - var y: ?*c_void = x; + var y: ?*anyopaque = x; var z = @ptrCast(*[4]u8, y); try expect(std.mem.eql(u8, z, "aoeu")); } diff --git a/test/behavior/translate_c_macros_stage1.zig b/test/behavior/translate_c_macros_stage1.zig index 8de06ae8ea..40fbbf5263 100644 --- a/test/behavior/translate_c_macros_stage1.zig +++ b/test/behavior/translate_c_macros_stage1.zig @@ -22,5 +22,5 @@ test "reference to a struct type" { } test "cast negative integer to pointer" { - try expectEqual(@intToPtr(?*c_void, @bitCast(usize, @as(isize, -1))), h.MAP_FAILED); + try expectEqual(@intToPtr(?*anyopaque, @bitCast(usize, @as(isize, -1))), h.MAP_FAILED); } diff --git a/test/behavior/type_info.zig b/test/behavior/type_info.zig index 8e8039372c..dd9a5b7839 100644 --- a/test/behavior/type_info.zig +++ b/test/behavior/type_info.zig @@ -227,13 +227,13 @@ fn testUnion() !void { try expect(notag_union_info.Union.fields[1].alignment == @alignOf(u32)); const TestExternUnion = extern union { - foo: *c_void, + foo: *anyopaque, }; const extern_union_info = @typeInfo(TestExternUnion); try expect(extern_union_info.Union.layout == .Extern); try expect(extern_union_info.Union.tag_type == null); - try expect(extern_union_info.Union.fields[0].field_type == *c_void); + try expect(extern_union_info.Union.fields[0].field_type == *anyopaque); } test "type info: struct info" { @@ -407,7 +407,7 @@ test "data field is a compile-time value" { } test "sentinel of opaque pointer type" { - const c_void_info = @typeInfo(*c_void); + const c_void_info = @typeInfo(*anyopaque); try expect(c_void_info.Pointer.sentinel == null); } diff --git a/test/compare_output.zig b/test/compare_output.zig index c8b157c335..43d83ee055 100644 --- a/test/compare_output.zig +++ b/test/compare_output.zig @@ -179,7 +179,7 @@ pub fn addCases(cases: *tests.CompareOutputContext) void { cases.addC("expose function pointer to C land", \\const c = @cImport(@cInclude("stdlib.h")); \\ - \\export fn compare_fn(a: ?*const c_void, b: ?*const c_void) c_int { + \\export fn compare_fn(a: ?*const anyopaque, b: ?*const anyopaque) c_int { \\ const a_int = @ptrCast(*const i32, @alignCast(@alignOf(i32), a)); \\ const b_int = @ptrCast(*const i32, @alignCast(@alignOf(i32), b)); \\ if (a_int.* < b_int.*) { @@ -194,7 +194,7 @@ pub fn addCases(cases: *tests.CompareOutputContext) void { \\pub export fn main() c_int { \\ var array = [_]u32{ 1, 7, 3, 2, 0, 9, 4, 8, 6, 5 }; \\ - \\ c.qsort(@ptrCast(?*c_void, &array), @intCast(c_ulong, array.len), @sizeOf(i32), compare_fn); + \\ c.qsort(@ptrCast(?*anyopaque, &array), @intCast(c_ulong, array.len), @sizeOf(i32), compare_fn); \\ \\ for (array) |item, i| { \\ if (item != i) { diff --git a/test/compile_errors.zig b/test/compile_errors.zig index c3de643e12..b1eaa03028 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -3058,10 +3058,10 @@ pub fn addCases(ctx: *TestContext) !void { "tmp.zig:1:15: error: parameter of type 'anytype' not allowed in function with calling convention 'C'", }); - ctx.objErrStage1("C pointer to c_void", + ctx.objErrStage1("C pointer to anyopaque", \\export fn a() void { - \\ var x: *c_void = undefined; - \\ var y: [*c]c_void = x; + \\ var x: *anyopaque = undefined; + \\ var y: [*c]anyopaque = x; \\ _ = y; \\} , &[_][]const u8{ @@ -3305,7 +3305,7 @@ pub fn addCases(ctx: *TestContext) !void { ctx.objErrStage1("compile log a pointer to an opaque value", \\export fn entry() void { - \\ @compileLog(@ptrCast(*const c_void, &entry)); + \\ @compileLog(@ptrCast(*const anyopaque, &entry)); \\} , &[_][]const u8{ "tmp.zig:2:5: error: found compile log statement", @@ -3465,16 +3465,16 @@ pub fn addCases(ctx: *TestContext) !void { "tmp.zig:2:11: error: use of undeclared identifier 'SymbolThatDoesNotExist'", }); - ctx.objErrStage1("don't implicit cast double pointer to *c_void", + ctx.objErrStage1("don't implicit cast double pointer to *anyopaque", \\export fn entry() void { \\ var a: u32 = 1; - \\ var ptr: *align(@alignOf(u32)) c_void = &a; + \\ var ptr: *align(@alignOf(u32)) anyopaque = &a; \\ var b: *u32 = @ptrCast(*u32, ptr); - \\ var ptr2: *c_void = &b; + \\ var ptr2: *anyopaque = &b; \\ _ = ptr2; \\} , &[_][]const u8{ - "tmp.zig:5:26: error: expected type '*c_void', found '**u32'", + "tmp.zig:5:29: error: expected type '*anyopaque', found '**u32'", }); ctx.objErrStage1("runtime index into comptime type slice", @@ -4045,9 +4045,9 @@ pub fn addCases(ctx: *TestContext) !void { "tmp.zig:8:9: error: integer value '256' cannot be stored in type 'u8'", }); - ctx.objErrStage1("use c_void as return type of fn ptr", + ctx.objErrStage1("use anyopaque as return type of fn ptr", \\export fn entry() void { - \\ const a: fn () c_void = undefined; + \\ const a: fn () anyopaque = undefined; \\ _ = a; \\} , &[_][]const u8{ @@ -7469,10 +7469,10 @@ pub fn addCases(ctx: *TestContext) !void { \\extern fn bar(d: *Derp) void; \\export fn foo() void { \\ var x = @as(u8, 1); - \\ bar(@ptrCast(*c_void, &x)); + \\ bar(@ptrCast(*anyopaque, &x)); \\} , &[_][]const u8{ - "tmp.zig:5:9: error: expected type '*Derp', found '*c_void'", + "tmp.zig:5:9: error: expected type '*Derp', found '*anyopaque'", }); ctx.objErrStage1("non-const variables of things that require const variables", @@ -8765,10 +8765,10 @@ pub fn addCases(ctx: *TestContext) !void { ctx.objErrStage1("integer underflow error", \\export fn entry() void { - \\ _ = @intToPtr(*c_void, ~@as(usize, @import("std").math.maxInt(usize)) - 1); + \\ _ = @intToPtr(*anyopaque, ~@as(usize, @import("std").math.maxInt(usize)) - 1); \\} , &[_][]const u8{ - ":2:75: error: operation caused overflow", + ":2:78: error: operation caused overflow", }); { @@ -8864,14 +8864,14 @@ pub fn addCases(ctx: *TestContext) !void { "tmp.zig:8:12: error: negation of type 'u32'", }); - ctx.objErrStage1("Issue #5618: coercion of ?*c_void to *c_void must fail.", + ctx.objErrStage1("Issue #5618: coercion of ?*anyopaque to *anyopaque must fail.", \\export fn foo() void { - \\ var u: ?*c_void = null; - \\ var v: *c_void = undefined; + \\ var u: ?*anyopaque = null; + \\ var v: *anyopaque = undefined; \\ v = u; \\} , &[_][]const u8{ - "tmp.zig:4:9: error: expected type '*c_void', found '?*c_void'", + "tmp.zig:4:9: error: expected type '*anyopaque', found '?*anyopaque'", }); ctx.objErrStage1("Issue #6823: don't allow .* to be followed by **", diff --git a/test/stage1/c_abi/main.zig b/test/stage1/c_abi/main.zig index b8137334ec..40362a288e 100644 --- a/test/stage1/c_abi/main.zig +++ b/test/stage1/c_abi/main.zig @@ -97,13 +97,13 @@ export fn zig_f64(x: f64) void { expect(x == 56.78) catch @panic("test failure"); } -extern fn c_ptr(*c_void) void; +extern fn c_ptr(*anyopaque) void; test "C ABI pointer" { - c_ptr(@intToPtr(*c_void, 0xdeadbeef)); + c_ptr(@intToPtr(*anyopaque, 0xdeadbeef)); } -export fn zig_ptr(x: *c_void) void { +export fn zig_ptr(x: *anyopaque) void { expect(@ptrToInt(x) == 0xdeadbeef) catch @panic("test failure"); } diff --git a/test/translate_c.zig b/test/translate_c.zig index 445c0a603a..50072d8085 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -99,7 +99,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\ .b = @import("std").mem.zeroes(struct_Bar), \\}; , - \\pub const PTR = ?*c_void; + \\pub const PTR = ?*anyopaque; }); cases.add("scoped record", @@ -199,8 +199,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\#define SYS_BASE_CACHED 0 \\#define MEM_PHYSICAL_TO_K0(x) (void*)((uint32_t)(x) + SYS_BASE_CACHED) , &[_][]const u8{ - \\pub inline fn MEM_PHYSICAL_TO_K0(x: anytype) ?*c_void { - \\ return @import("std").zig.c_translation.cast(?*c_void, @import("std").zig.c_translation.cast(u32, x) + SYS_BASE_CACHED); + \\pub inline fn MEM_PHYSICAL_TO_K0(x: anytype) ?*anyopaque { + \\ return @import("std").zig.c_translation.cast(?*anyopaque, @import("std").zig.c_translation.cast(u32, x) + SYS_BASE_CACHED); \\} }); @@ -511,9 +511,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\void ((f1)) (void *L); \\void (((f2))) (void *L); , &[_][]const u8{ - \\pub extern fn f0(L: ?*c_void) void; - \\pub extern fn f1(L: ?*c_void) void; - \\pub extern fn f2(L: ?*c_void) void; + \\pub extern fn f0(L: ?*anyopaque) void; + \\pub extern fn f1(L: ?*anyopaque) void; + \\pub extern fn f2(L: ?*anyopaque) void; }); cases.add("array initializer w/ typedef", @@ -812,7 +812,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\typedef void Foo; \\Foo fun(Foo *a); , &[_][]const u8{ - \\pub const Foo = c_void; + \\pub const Foo = anyopaque; , \\pub extern fn fun(a: ?*Foo) Foo; }); @@ -837,7 +837,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { , &[_][]const u8{ \\pub extern fn foo() void; \\pub export fn bar() void { - \\ var func_ptr: ?*c_void = @ptrCast(?*c_void, foo); + \\ var func_ptr: ?*anyopaque = @ptrCast(?*anyopaque, foo); \\ var typed_func_ptr: ?fn () callconv(.C) void = @intToPtr(?fn () callconv(.C) void, @intCast(c_ulong, @ptrToInt(func_ptr))); \\ _ = typed_func_ptr; \\} @@ -1264,9 +1264,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\ return x; \\} , &[_][]const u8{ - \\pub export fn foo() ?*c_void { + \\pub export fn foo() ?*anyopaque { \\ var x: [*c]c_ushort = undefined; - \\ return @ptrCast(?*c_void, x); + \\ return @ptrCast(?*anyopaque, x); \\} }); @@ -1410,7 +1410,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\} , &[_][]const u8{ \\pub export fn test_ptr_cast() void { - \\ var p: ?*c_void = undefined; + \\ var p: ?*anyopaque = undefined; \\ { \\ var to_char: [*c]u8 = @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), p)); \\ _ = to_char; @@ -1448,7 +1448,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\pub export fn while_none_bool() c_int { \\ var a: c_int = undefined; \\ var b: f32 = undefined; - \\ var c: ?*c_void = undefined; + \\ var c: ?*anyopaque = undefined; \\ while (a != 0) return 0; \\ while (b != 0) return 1; \\ while (c != null) return 2; @@ -1470,7 +1470,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\pub export fn for_none_bool() c_int { \\ var a: c_int = undefined; \\ var b: f32 = undefined; - \\ var c: ?*c_void = undefined; + \\ var c: ?*anyopaque = undefined; \\ while (a != 0) return 0; \\ while (b != 0) return 1; \\ while (c != null) return 2; @@ -1551,7 +1551,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\pub export fn foo() c_int { \\ var a: c_int = undefined; \\ var b: f32 = undefined; - \\ var c: ?*c_void = undefined; + \\ var c: ?*anyopaque = undefined; \\ return @boolToInt(!(a == @as(c_int, 0))); \\ return @boolToInt(!(a != 0)); \\ return @boolToInt(!(b != 0)); @@ -2200,7 +2200,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { cases.add("restrict -> noalias", \\void foo(void *restrict bar, void *restrict); , &[_][]const u8{ - \\pub extern fn foo(noalias bar: ?*c_void, noalias ?*c_void) void; + \\pub extern fn foo(noalias bar: ?*anyopaque, noalias ?*anyopaque) void; }); cases.add("assign", @@ -2362,7 +2362,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { ++ " " ++ default_enum_type ++ \\; \\pub const SomeTypedef = c_int; - \\pub export fn and_or_non_bool(arg_a: c_int, arg_b: f32, arg_c: ?*c_void) c_int { + \\pub export fn and_or_non_bool(arg_a: c_int, arg_b: f32, arg_c: ?*anyopaque) c_int { \\ var a = arg_a; \\ var b = arg_b; \\ var c = arg_c; @@ -2686,7 +2686,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\pub const enum_SomeEnum = ++ " " ++ default_enum_type ++ \\; - \\pub export fn if_none_bool(arg_a: c_int, arg_b: f32, arg_c: ?*c_void, arg_d: enum_SomeEnum) c_int { + \\pub export fn if_none_bool(arg_a: c_int, arg_b: f32, arg_c: ?*anyopaque, arg_d: enum_SomeEnum) c_int { \\ var a = arg_a; \\ var b = arg_b; \\ var c = arg_c; @@ -3089,7 +3089,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\pub extern fn fn_f64(x: f64) void; \\pub extern fn fn_char(x: u8) void; \\pub extern fn fn_bool(x: bool) void; - \\pub extern fn fn_ptr(x: ?*c_void) void; + \\pub extern fn fn_ptr(x: ?*anyopaque) void; \\pub export fn call() void { \\ fn_int(@floatToInt(c_int, 3.0)); \\ fn_int(@floatToInt(c_int, 3.0)); @@ -3105,7 +3105,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\ fn_bool(@as(c_int, 0) != 0); \\ fn_bool(@ptrToInt(fn_int) != 0); \\ fn_int(@intCast(c_int, @ptrToInt(fn_int))); - \\ fn_ptr(@intToPtr(?*c_void, @as(c_int, 42))); + \\ fn_ptr(@intToPtr(?*anyopaque, @as(c_int, 42))); \\} }); @@ -3161,12 +3161,12 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\#define BAZ (uint32_t)(2) \\#define a 2 , &[_][]const u8{ - \\pub inline fn FOO(bar: anytype) @TypeOf(baz(@import("std").zig.c_translation.cast(?*c_void, baz))) { + \\pub inline fn FOO(bar: anytype) @TypeOf(baz(@import("std").zig.c_translation.cast(?*anyopaque, baz))) { \\ _ = bar; - \\ return baz(@import("std").zig.c_translation.cast(?*c_void, baz)); + \\ return baz(@import("std").zig.c_translation.cast(?*anyopaque, baz)); \\} , - \\pub const BAR = @import("std").zig.c_translation.cast(?*c_void, a); + \\pub const BAR = @import("std").zig.c_translation.cast(?*anyopaque, a); , \\pub const BAZ = @import("std").zig.c_translation.cast(u32, @as(c_int, 2)); }); @@ -3404,7 +3404,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\#define NULL ((void*)0) \\#define FOO ((int)0x8000) , &[_][]const u8{ - \\pub const NULL = @import("std").zig.c_translation.cast(?*c_void, @as(c_int, 0)); + \\pub const NULL = @import("std").zig.c_translation.cast(?*anyopaque, @as(c_int, 0)); , \\pub const FOO = @import("std").zig.c_translation.cast(c_int, @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x8000, .hexadecimal)); }); @@ -3623,8 +3623,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\typedef long long LONG_PTR; \\#define INVALID_HANDLE_VALUE ((void *)(LONG_PTR)-1) , &[_][]const u8{ - \\pub const MAP_FAILED = @import("std").zig.c_translation.cast(?*c_void, -@as(c_int, 1)); - \\pub const INVALID_HANDLE_VALUE = @import("std").zig.c_translation.cast(?*c_void, @import("std").zig.c_translation.cast(LONG_PTR, -@as(c_int, 1))); + \\pub const MAP_FAILED = @import("std").zig.c_translation.cast(?*anyopaque, -@as(c_int, 1)); + \\pub const INVALID_HANDLE_VALUE = @import("std").zig.c_translation.cast(?*anyopaque, @import("std").zig.c_translation.cast(LONG_PTR, -@as(c_int, 1))); }); cases.add("discard unused local variables and function parameters",