mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
stage1, stage2: rename c_void to anyopaque (#10316)
zig fmt now replaces c_void with anyopaque to make updating code easy.
This commit is contained in:
parent
8468b544e8
commit
9f9f215305
78 changed files with 597 additions and 557 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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"),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 {}
|
||||
|
|
|
|||
|
|
@ -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 };
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(' '),
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
26
src/type.zig
26
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,
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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" {
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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 **",
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue