Commit 9f9f215305
Changed files (78)
lib
std
crypto
os
linux
uefi
special
compiler_rt
src
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 {
doc/langref.html.in
@@ -720,11 +720,6 @@ pub fn main() void {
<td><code class="c">long double</code></td>
<td>for ABI compatibility with C</td>
</tr>
- <tr>
- <th scope="row">{#syntax#}c_void{#endsyntax#}</th>
- <td><code class="c">void</code></td>
- <td>for ABI compatibility with C</td>
- </tr>
<tr>
<th scope="row">{#syntax#}f16{#endsyntax#}</th>
@@ -751,6 +746,11 @@ pub fn main() void {
<td><code class="c">bool</code></td>
<td>{#syntax#}true{#endsyntax#} or {#syntax#}false{#endsyntax#}</td>
</tr>
+ <tr>
+ <th scope="row">{#syntax#}anyopaque{#endsyntax#}</th>
+ <td><code class="c">void</code></td>
+ <td>Used for type-erased pointers.</td>
+ </tr>
<tr>
<th scope="row">{#syntax#}void{#endsyntax#}</th>
<td>(none)</td>
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 {
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,
};
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 {
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
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;
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,
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,
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 {
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
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);
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,
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 });
}
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);
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,
};
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,
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,
};
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);
}
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,
};
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,
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,
};
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,
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);
}
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
};
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,
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);
}
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);
}
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);
}
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
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,
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
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;
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,
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;
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,
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,
},
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) {
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;
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();
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;
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;
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 {}
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 };
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
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(' '),
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;
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,
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.
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);
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"),
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;
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
}
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);
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,
};
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,
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;
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);
}
{
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;
}
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),
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;
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();
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,
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;
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,
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,
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),
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),
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;
}
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 {
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" {
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"));
}
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);
}
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);
}
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");
}
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) {
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 **",
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",