mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
Restore deprecated contants using new Flag types
This allows for a gradual transitioning to the new typed flags Signed-off-by: Bernard Assan <mega.alpha100@gmail.com>
This commit is contained in:
parent
b5dab22f26
commit
88fa1decbf
2 changed files with 222 additions and 33 deletions
|
|
@ -3476,6 +3476,7 @@ pub const STDIN_FILENO = 0;
|
|||
pub const STDOUT_FILENO = 1;
|
||||
pub const STDERR_FILENO = 2;
|
||||
|
||||
/// Deprecated alias to At
|
||||
pub const AT = At;
|
||||
/// matches AT_* and AT_STATX_*
|
||||
pub const At = packed struct(u32) {
|
||||
|
|
@ -3516,6 +3517,44 @@ pub const At = packed struct(u32) {
|
|||
/// Do whatever stat() does
|
||||
/// This is the default and is very much filesystem-specific
|
||||
pub const statx_sync_as_stat: At = .{};
|
||||
|
||||
// DEPRECATED ALIASES
|
||||
//
|
||||
//
|
||||
/// Special value used to indicate openat should use the current working directory
|
||||
pub const FDCWD = fdcwd;
|
||||
|
||||
/// Do not follow symbolic links
|
||||
pub const SYMLINK_NOFOLLOW: u32 = @bitCast(At{ .symlink_nofollow = true });
|
||||
|
||||
/// Remove directory instead of unlinking file
|
||||
pub const REMOVEDIR: u32 = @bitCast(At{ .removedir_or_handle_fid = .{ .removedir = true } });
|
||||
|
||||
pub const HANDLE_FID = At{ .removedir_or_handle_fid = .{ .handle_fid = true } };
|
||||
|
||||
/// Follow symbolic links.
|
||||
pub const SYMLINK_FOLLOW: u32 = @bitCast(At{ .symlink_follow = true });
|
||||
|
||||
/// Suppress terminal automount traversal
|
||||
pub const NO_AUTOMOUNT: u32 = @bitCast(At{ .no_automount = true });
|
||||
|
||||
/// Allow empty relative pathname
|
||||
pub const EMPTY_PATH: u32 = @bitCast(At{ .empty_path = true });
|
||||
|
||||
/// Type of synchronisation required from statx()
|
||||
pub const STATX_SYNC_TYPE: u32 = @bitCast(statx_sync_type);
|
||||
|
||||
/// - Do whatever stat() does
|
||||
pub const STATX_SYNC_AS_STAT: u32 = @bitCast(statx_sync_as_stat);
|
||||
|
||||
/// - Force the attributes to be sync'd with the server
|
||||
pub const STATX_FORCE_SYNC: u32 = @bitCast(At{ .statx_force_sync = true });
|
||||
|
||||
/// - Don't sync attributes with the server
|
||||
pub const STATX_DONT_SYNC: u32 = @bitCast(At{ .statx_dont_sync = true });
|
||||
|
||||
/// Apply to the entire subtree
|
||||
pub const RECURSIVE: u32 = @bitCast(At{ .recursive = true });
|
||||
};
|
||||
|
||||
pub const FALLOC = struct {
|
||||
|
|
@ -3673,6 +3712,14 @@ pub const W = packed struct(u32) {
|
|||
nowait: bool = false,
|
||||
_unused_1: u7 = 0,
|
||||
|
||||
// Deprecated aliases
|
||||
pub const NOHANG: u32 = @bitCast(W{ .nohang = true });
|
||||
pub const UNTRACED: u32 = @bitCast(W{ .untraced_or_stopped = .{ .untraced = true } });
|
||||
pub const STOPPED: u32 = @bitCast(W{ .untraced_or_stopped = .{ .stopped = true } });
|
||||
pub const EXITED: u32 = @bitCast(W{ .exited = true });
|
||||
pub const CONTINUED: u32 = @bitCast(W{ .continued = true });
|
||||
pub const NOWAIT: u32 = @bitCast(W{ .nowait = true });
|
||||
|
||||
pub fn EXITSTATUS(s: W) u8 {
|
||||
return @intCast((@as(u32, @bitCast(s)) & 0xff00) >> 8);
|
||||
}
|
||||
|
|
@ -3893,6 +3940,7 @@ pub const SEEK = struct {
|
|||
pub const END = 2;
|
||||
};
|
||||
|
||||
/// Deprecated alias to Shut
|
||||
pub const SHUT = Shut;
|
||||
/// enum sock_shutdown_cmd - Shutdown types
|
||||
/// matches SHUT_* in kenel
|
||||
|
|
@ -3905,16 +3953,22 @@ pub const Shut = enum(u32) {
|
|||
rdwr = 2,
|
||||
|
||||
_,
|
||||
|
||||
// deprecated constants of the fields
|
||||
pub const RD: u32 = @intFromEnum(Shut.rd);
|
||||
pub const WR: u32 = @intFromEnum(Shut.wd);
|
||||
pub const RDWR: u32 = @intFromEnum(Shut.rdwr);
|
||||
};
|
||||
|
||||
pub const SOCK = Sock;
|
||||
/// SOCK_* Socket type and flags
|
||||
pub const Sock = packed struct(u32) {
|
||||
type: Type,
|
||||
type: Type = .default,
|
||||
flags: Flags = .{},
|
||||
|
||||
/// matches sock_type in kernel
|
||||
pub const Type = enum(u7) {
|
||||
default = 0,
|
||||
stream = if (is_mips) 2 else 1,
|
||||
dgram = if (is_mips) 1 else 2,
|
||||
raw = 3,
|
||||
|
|
@ -3946,6 +4000,17 @@ pub const Sock = packed struct(u32) {
|
|||
cloexec: bool = false,
|
||||
_2: u12 = 0,
|
||||
};
|
||||
|
||||
// Deprecated aliases for SOCK
|
||||
pub const STREAM: u32 = @intFromEnum(Type.stream);
|
||||
pub const DGRAM: u32 = @intFromEnum(Type.dgram);
|
||||
pub const RAW: u32 = @intFromEnum(Type.raw);
|
||||
pub const RDM: u32 = @intFromEnum(Type.rdm);
|
||||
pub const SEQPACKET: u32 = @intFromEnum(Type.seqpacket);
|
||||
pub const DCCP: u32 = @intFromEnum(Type.dccp);
|
||||
pub const PACKET: u32 = @intFromEnum(Type.packet);
|
||||
pub const CLOEXEC: u32 = (@as(u25, @bitCast(Flags{ .cloexec = true })) << 7);
|
||||
pub const NONBLOCK: u32 = (@as(u25, @bitCast(Flags{ .nonblock = true })) << 7);
|
||||
};
|
||||
|
||||
pub const TCP = struct {
|
||||
|
|
@ -4048,8 +4113,13 @@ pub const UDP_ENCAP = struct {
|
|||
pub const RXRPC = 6;
|
||||
};
|
||||
|
||||
// Deprecated Alias
|
||||
pub const AF = Af;
|
||||
pub const PF = Af;
|
||||
/// Protocol Family (same values as Protocol Family)
|
||||
pub const Pf = Af;
|
||||
/// Address Family
|
||||
pub const AF = enum(u16) {
|
||||
pub const Af = enum(u16) {
|
||||
unspec = 0,
|
||||
unix = 1,
|
||||
inet = 2,
|
||||
|
|
@ -4099,13 +4169,61 @@ pub const AF = enum(u16) {
|
|||
_,
|
||||
|
||||
// Aliases
|
||||
pub const local = AF.unix;
|
||||
pub const file = AF.unix;
|
||||
pub const netlink = AF.route;
|
||||
};
|
||||
pub const local = Af.unix;
|
||||
pub const file = Af.unix;
|
||||
pub const netlink = Af.route;
|
||||
|
||||
/// Protocol Family (same values as Protocol Family)
|
||||
pub const PF = AF;
|
||||
// Deprecated constants for backward compatibility
|
||||
pub const UNSPEC: u16 = @intFromEnum(Af.unspec);
|
||||
pub const UNIX: u16 = @intFromEnum(Af.unix);
|
||||
pub const LOCAL: u16 = @intFromEnum(local);
|
||||
pub const FILE: u16 = @intFromEnum(file);
|
||||
pub const INET: u16 = @intFromEnum(Af.inet);
|
||||
pub const AX25: u16 = @intFromEnum(Af.ax25);
|
||||
pub const IPX: u16 = @intFromEnum(Af.ipx);
|
||||
pub const APPLETALK: u16 = @intFromEnum(Af.appletalk);
|
||||
pub const NETROM: u16 = @intFromEnum(Af.netrom);
|
||||
pub const BRIDGE: u16 = @intFromEnum(Af.bridge);
|
||||
pub const ATMPVC: u16 = @intFromEnum(Af.atmpvc);
|
||||
pub const X25: u16 = @intFromEnum(Af.x25);
|
||||
pub const INET6: u16 = @intFromEnum(Af.inet6);
|
||||
pub const ROSE: u16 = @intFromEnum(Af.rose);
|
||||
pub const DECnet: u16 = @intFromEnum(Af.decnet);
|
||||
pub const NETBEUI: u16 = @intFromEnum(Af.netbeui);
|
||||
pub const SECURITY: u16 = @intFromEnum(Af.security);
|
||||
pub const KEY: u16 = @intFromEnum(Af.key);
|
||||
pub const ROUTE: u16 = @intFromEnum(Af.route);
|
||||
pub const NETLINK: u16 = @intFromEnum(netlink);
|
||||
pub const PACKET: u16 = @intFromEnum(Af.packet);
|
||||
pub const ASH: u16 = @intFromEnum(Af.ash);
|
||||
pub const ECONET: u16 = @intFromEnum(Af.econet);
|
||||
pub const ATMSVC: u16 = @intFromEnum(Af.atmsvc);
|
||||
pub const RDS: u16 = @intFromEnum(Af.rds);
|
||||
pub const SNA: u16 = @intFromEnum(Af.sna);
|
||||
pub const IRDA: u16 = @intFromEnum(Af.irda);
|
||||
pub const PPPOX: u16 = @intFromEnum(Af.pppox);
|
||||
pub const WANPIPE: u16 = @intFromEnum(Af.wanpipe);
|
||||
pub const LLC: u16 = @intFromEnum(Af.llc);
|
||||
pub const IB: u16 = @intFromEnum(Af.ib);
|
||||
pub const MPLS: u16 = @intFromEnum(Af.mpls);
|
||||
pub const CAN: u16 = @intFromEnum(Af.can);
|
||||
pub const TIPC: u16 = @intFromEnum(Af.tipc);
|
||||
pub const BLUETOOTH: u16 = @intFromEnum(Af.bluetooth);
|
||||
pub const IUCV: u16 = @intFromEnum(Af.iucv);
|
||||
pub const RXRPC: u16 = @intFromEnum(Af.rxrpc);
|
||||
pub const ISDN: u16 = @intFromEnum(Af.isdn);
|
||||
pub const PHONET: u16 = @intFromEnum(Af.phonet);
|
||||
pub const IEEE802154: u16 = @intFromEnum(Af.ieee802154);
|
||||
pub const CAIF: u16 = @intFromEnum(Af.caif);
|
||||
pub const ALG: u16 = @intFromEnum(Af.alg);
|
||||
pub const NFC: u16 = @intFromEnum(Af.nfc);
|
||||
pub const VSOCK: u16 = @intFromEnum(Af.vsock);
|
||||
pub const KCM: u16 = @intFromEnum(Af.kcm);
|
||||
pub const QIPCRTR: u16 = @intFromEnum(Af.qipcrtr);
|
||||
pub const SMC: u16 = @intFromEnum(Af.smc);
|
||||
pub const XDP: u16 = @intFromEnum(Af.xdp);
|
||||
pub const MAX: u16 = @intFromEnum(Af.max);
|
||||
};
|
||||
|
||||
pub const SO = if (is_mips) struct {
|
||||
pub const DEBUG = 1;
|
||||
|
|
@ -5863,7 +5981,8 @@ pub const signalfd_siginfo = extern struct {
|
|||
};
|
||||
|
||||
pub const in_port_t = u16;
|
||||
pub const sa_family_t = AF;
|
||||
// TODO: change to AF type
|
||||
pub const sa_family_t = u16;
|
||||
pub const socklen_t = u32;
|
||||
|
||||
pub const sockaddr = extern struct {
|
||||
|
|
@ -5883,7 +6002,7 @@ pub const sockaddr = extern struct {
|
|||
|
||||
/// IPv4 socket address
|
||||
pub const in = extern struct {
|
||||
family: sa_family_t = AF.INET,
|
||||
family: sa_family_t = Af.INET,
|
||||
port: in_port_t,
|
||||
addr: u32,
|
||||
zero: [8]u8 = [8]u8{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
|
|
@ -5891,7 +6010,7 @@ pub const sockaddr = extern struct {
|
|||
|
||||
/// IPv6 socket address
|
||||
pub const in6 = extern struct {
|
||||
family: sa_family_t = AF.INET6,
|
||||
family: sa_family_t = Af.INET6,
|
||||
port: in_port_t,
|
||||
flowinfo: u32,
|
||||
addr: [16]u8,
|
||||
|
|
@ -5900,13 +6019,13 @@ pub const sockaddr = extern struct {
|
|||
|
||||
/// UNIX domain socket address
|
||||
pub const un = extern struct {
|
||||
family: sa_family_t = AF.UNIX,
|
||||
family: sa_family_t = Af.UNIX,
|
||||
path: [108]u8,
|
||||
};
|
||||
|
||||
/// Packet socket address
|
||||
pub const ll = extern struct {
|
||||
family: sa_family_t = AF.PACKET,
|
||||
family: sa_family_t = Af.PACKET,
|
||||
protocol: u16,
|
||||
ifindex: i32,
|
||||
hatype: u16,
|
||||
|
|
@ -5917,7 +6036,7 @@ pub const sockaddr = extern struct {
|
|||
|
||||
/// Netlink socket address
|
||||
pub const nl = extern struct {
|
||||
family: sa_family_t = AF.NETLINK,
|
||||
family: sa_family_t = Af.NETLINK,
|
||||
__pad1: c_ushort = 0,
|
||||
|
||||
/// port ID
|
||||
|
|
@ -5928,7 +6047,7 @@ pub const sockaddr = extern struct {
|
|||
};
|
||||
|
||||
pub const xdp = extern struct {
|
||||
family: u16 = AF.XDP,
|
||||
family: u16 = Af.XDP,
|
||||
flags: u16,
|
||||
ifindex: u32,
|
||||
queue_id: u32,
|
||||
|
|
@ -5937,7 +6056,7 @@ pub const sockaddr = extern struct {
|
|||
|
||||
/// Address structure for vSockets
|
||||
pub const vm = extern struct {
|
||||
family: sa_family_t = AF.VSOCK,
|
||||
family: sa_family_t = Af.VSOCK,
|
||||
reserved1: u16 = 0,
|
||||
port: u32,
|
||||
cid: u32,
|
||||
|
|
@ -7111,6 +7230,38 @@ pub const Statx = extern struct {
|
|||
};
|
||||
};
|
||||
|
||||
// DEPRECATED aliases to Statx.Mask and Statx.Attr
|
||||
const STATX_TYPE: u32 = @bitCast(Statx.Mask{ .type = true });
|
||||
const STATX_MODE: u32 = @bitCast(Statx.Mask{ .mode = true });
|
||||
const STATX_NLINK: u32 = @bitCast(Statx.Mask{ .nlink = true });
|
||||
const STATX_UID: u32 = @bitCast(Statx.Mask{ .uid = true });
|
||||
const STATX_GID: u32 = @bitCast(Statx.Mask{ .gid = true });
|
||||
const STATX_ATIME: u32 = @bitCast(Statx.Mask{ .atime = true });
|
||||
const STATX_MTIME: u32 = @bitCast(Statx.Mask{ .mtime = true });
|
||||
const STATX_CTIME: u32 = @bitCast(Statx.Mask{ .ctime = true });
|
||||
const STATX_INO: u32 = @bitCast(Statx.Mask{ .ino = true });
|
||||
const STATX_SIZE: u32 = @bitCast(Statx.Mask{ .size = true });
|
||||
const STATX_BLOCKS: u32 = @bitCast(Statx.Mask{ .blocks = true });
|
||||
const STATX_BASIC_STATS: u32 = @bitCast(Statx.Mask.basic_stats);
|
||||
const STATX_BTIME: u32 = @bitCast(Statx.Mask{ .btime = true });
|
||||
const STATX_MNT_ID: u32 = @bitCast(Statx.Mask{ .mnt_id = true });
|
||||
const STATX_DIOALIGN: u32 = @bitCast(Statx.Mask{ .dioalign = true });
|
||||
const STATX_MNT_ID_UNIQUE: u32 = @bitCast(Statx.Mask{ .mnt_id_unique = true });
|
||||
const STATX_SUBVOL: u32 = @bitCast(Statx.Mask{ .subvol = true });
|
||||
const STATX_WRITE_ATOMIC: u32 = @bitCast(Statx.Mask{ .write_atomic = true });
|
||||
const STATX_DIO_READ_ALIGN: u32 = @bitCast(Statx.Mask{ .dio_read_align = true });
|
||||
|
||||
const STATX_ATTR_COMPRESSED: u64 = @bitCast(Statx.Attr{ .compressed = true });
|
||||
const STATX_ATTR_IMMUTABLE: u64 = @bitCast(Statx.Attr{ .immutable = true });
|
||||
const STATX_ATTR_APPEND: u64 = @bitCast(Statx.Attr{ .append = true });
|
||||
const STATX_ATTR_NODUMP: u64 = @bitCast(Statx.Attr{ .nodump = true });
|
||||
const STATX_ATTR_ENCRYPTED: u64 = @bitCast(Statx.Attr{ .encrypted = true });
|
||||
const STATX_ATTR_AUTOMOUNT: u64 = @bitCast(Statx.Attr{ .automount = true });
|
||||
const STATX_ATTR_MOUNT_ROOT: u64 = @bitCast(Statx.Attr{ .mount_root = true });
|
||||
const STATX_ATTR_VERITY: u64 = @bitCast(Statx.Attr{ .verity = true });
|
||||
const STATX_ATTR_DAX: u64 = @bitCast(Statx.Attr{ .dax = true });
|
||||
const STATX_ATTR_WRITE_ATOMIC: u64 = @bitCast(Statx.Attr{ .write_atomic = true });
|
||||
|
||||
pub const addrinfo = extern struct {
|
||||
flags: AI,
|
||||
family: i32,
|
||||
|
|
@ -7136,6 +7287,8 @@ pub const AI = packed struct(u32) {
|
|||
|
||||
pub const IPPORT_RESERVED = 1024;
|
||||
|
||||
/// Deprecated alias to IpProto
|
||||
pub const IPPROTO = IpProto;
|
||||
/// IP Protocol numbers
|
||||
pub const IpProto = enum(u16) {
|
||||
ip = 0,
|
||||
|
|
@ -7175,6 +7328,42 @@ pub const IpProto = enum(u16) {
|
|||
// Aliases
|
||||
pub const hopopts = IpProto.ip;
|
||||
pub const default = IpProto.ip;
|
||||
|
||||
// Deprecated constants use enum instead
|
||||
// Legacy constants for backward compatibility
|
||||
pub const IP: u16 = @intFromEnum(IpProto.ip);
|
||||
pub const HOPOPTS: u16 = @intFromEnum(hopopts);
|
||||
pub const ICMP: u16 = @intFromEnum(IpProto.icmp);
|
||||
pub const IGMP: u16 = @intFromEnum(IpProto.igmp);
|
||||
pub const IPIP: u16 = @intFromEnum(IpProto.ipip);
|
||||
pub const TCP: u16 = @intFromEnum(IpProto.tcp);
|
||||
pub const EGP: u16 = @intFromEnum(IpProto.egp);
|
||||
pub const PUP: u16 = @intFromEnum(IpProto.pup);
|
||||
pub const UDP: u16 = @intFromEnum(IpProto.udp);
|
||||
pub const IDP: u16 = @intFromEnum(IpProto.idp);
|
||||
pub const TP: u16 = @intFromEnum(IpProto.tp);
|
||||
pub const DCCP: u16 = @intFromEnum(IpProto.dccp);
|
||||
pub const IPV6: u16 = @intFromEnum(IpProto.ipv6);
|
||||
pub const ROUTING: u16 = @intFromEnum(IpProto.routing);
|
||||
pub const FRAGMENT: u16 = @intFromEnum(IpProto.fragment);
|
||||
pub const RSVP: u16 = @intFromEnum(IpProto.rsvp);
|
||||
pub const GRE: u16 = @intFromEnum(IpProto.gre);
|
||||
pub const ESP: u16 = @intFromEnum(IpProto.esp);
|
||||
pub const AH: u16 = @intFromEnum(IpProto.ah);
|
||||
pub const ICMPV6: u16 = @intFromEnum(IpProto.icmpv6);
|
||||
pub const NONE: u16 = @intFromEnum(IpProto.none);
|
||||
pub const DSTOPTS: u16 = @intFromEnum(IpProto.DSTOPTS);
|
||||
pub const MTP: u16 = @intFromEnum(IpProto.mtp);
|
||||
pub const BEETPH: u16 = @intFromEnum(IpProto.beetph);
|
||||
pub const ENCAP: u16 = @intFromEnum(IpProto.encap);
|
||||
pub const PIM: u16 = @intFromEnum(IpProto.pim);
|
||||
pub const COMP: u16 = @intFromEnum(IpProto.comp);
|
||||
pub const SCTP: u16 = @intFromEnum(IpProto.sctp);
|
||||
pub const MH: u16 = @intFromEnum(IpProto.mh);
|
||||
pub const UDPLITE: u16 = @intFromEnum(IpProto.udplite);
|
||||
pub const MPLS: u16 = @intFromEnum(IpProto.mpls);
|
||||
pub const RAW: u16 = @intFromEnum(IpProto.raw);
|
||||
pub const MAX: u16 = @intFromEnum(IpProto.max);
|
||||
};
|
||||
|
||||
pub const tcp_repair_opt = extern struct {
|
||||
|
|
|
|||
|
|
@ -1328,7 +1328,7 @@ pub fn unregister_files(self: *IoUring) !void {
|
|||
pub fn socket(
|
||||
self: *IoUring,
|
||||
user_data: u64,
|
||||
domain: linux.AF,
|
||||
domain: linux.Af,
|
||||
socket_type: linux.Sock,
|
||||
protocol: linux.IpProto,
|
||||
/// flags is unused
|
||||
|
|
@ -1345,7 +1345,7 @@ pub fn socket(
|
|||
pub fn socket_direct(
|
||||
self: *IoUring,
|
||||
user_data: u64,
|
||||
domain: linux.AF,
|
||||
domain: linux.Af,
|
||||
socket_type: linux.Sock,
|
||||
protocol: linux.IpProto,
|
||||
/// flags is unused
|
||||
|
|
@ -2657,7 +2657,7 @@ test "shutdown" {
|
|||
const server = try posix.socket(address.family, posix.SOCK.STREAM | posix.SOCK.CLOEXEC, 0);
|
||||
defer posix.close(server);
|
||||
|
||||
const shutdown_sqe = ring.shutdown(0x445445445, server, linux.SHUT.RD) catch |err| switch (err) {
|
||||
const shutdown_sqe = ring.shutdown(0x445445445, server, .rd) catch |err| switch (err) {
|
||||
else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),
|
||||
};
|
||||
try testing.expectEqual(Op.SHUTDOWN, shutdown_sqe.opcode);
|
||||
|
|
@ -3339,7 +3339,7 @@ fn createSocketTestHarness(ring: *IoUring) !SocketTestHarness {
|
|||
// Submit 1 accept
|
||||
var accept_addr: posix.sockaddr = undefined;
|
||||
var accept_addr_len: posix.socklen_t = @sizeOf(@TypeOf(accept_addr));
|
||||
_ = try ring.accept(0xaaaaaaaa, listener_socket, &accept_addr, &accept_addr_len, 0);
|
||||
_ = try ring.accept(0xaaaaaaaa, listener_socket, &accept_addr, &accept_addr_len, .{});
|
||||
|
||||
// Create a TCP client socket
|
||||
const client = try posix.socket(address.family, posix.SOCK.STREAM | posix.SOCK.CLOEXEC, 0);
|
||||
|
|
@ -3417,7 +3417,7 @@ test "accept multishot" {
|
|||
var addr: posix.sockaddr = undefined;
|
||||
var addr_len: posix.socklen_t = @sizeOf(@TypeOf(addr));
|
||||
const userdata: u64 = 0xaaaaaaaa;
|
||||
_ = try ring.accept_multishot(userdata, listener_socket, &addr, &addr_len, 0);
|
||||
_ = try ring.accept_multishot(userdata, listener_socket, &addr, &addr_len, .{});
|
||||
try testing.expectEqual(@as(u32, 1), try ring.submit());
|
||||
|
||||
var nr: usize = 4; // number of clients to connect
|
||||
|
|
@ -3525,7 +3525,7 @@ test "accept_direct" {
|
|||
const buffer_send: []const u8 = data[0 .. data.len - i]; // make it different at each loop
|
||||
|
||||
// submit accept, will chose registered fd and return index in cqe
|
||||
_ = try ring.accept_direct(accept_userdata, listener_socket, null, null, 0);
|
||||
_ = try ring.accept_direct(accept_userdata, listener_socket, null, null, .{});
|
||||
try testing.expectEqual(@as(u32, 1), try ring.submit());
|
||||
|
||||
// connect
|
||||
|
|
@ -3608,7 +3608,7 @@ test "accept_multishot_direct" {
|
|||
for (0..2) |_| {
|
||||
// submit multishot accept
|
||||
// Will chose registered fd and return index of the selected registered file in cqe.
|
||||
_ = try ring.accept_multishot_direct(accept_userdata, listener_socket, null, null, 0);
|
||||
_ = try ring.accept_multishot_direct(accept_userdata, listener_socket, null, null, .{});
|
||||
try testing.expectEqual(@as(u32, 1), try ring.submit());
|
||||
|
||||
for (registered_fds) |_| {
|
||||
|
|
@ -3654,7 +3654,7 @@ test "socket" {
|
|||
defer ring.deinit();
|
||||
|
||||
// prepare, submit socket operation
|
||||
_ = try ring.socket(0, linux.AF.INET, .{ .type = .stream }, 0, 0);
|
||||
_ = try ring.socket(0, .{ .inet = true }, .{ .type = .stream }, 0, 0);
|
||||
try testing.expectEqual(@as(u32, 1), try ring.submit());
|
||||
|
||||
// test completion
|
||||
|
|
@ -3687,7 +3687,7 @@ test "socket_direct/socket_direct_alloc/close_direct" {
|
|||
try testing.expect(cqe_socket.res == 0);
|
||||
|
||||
// create socket in registered file descriptor at index 1 (last param)
|
||||
_ = try ring.socket_direct(0, linux.AF.INET, posix.SOCK.STREAM, 0, 0, 1);
|
||||
_ = try ring.socket_direct(0, linux.Af.INET, posix.SOCK.STREAM, 0, 0, 1);
|
||||
try testing.expectEqual(@as(u32, 1), try ring.submit());
|
||||
cqe_socket = try ring.copy_cqe();
|
||||
try testing.expectEqual(posix.E.SUCCESS, cqe_socket.err());
|
||||
|
|
@ -3695,7 +3695,7 @@ test "socket_direct/socket_direct_alloc/close_direct" {
|
|||
|
||||
// create socket in kernel chosen file descriptor index (_alloc version)
|
||||
// completion res has index from registered files
|
||||
_ = try ring.socket_direct_alloc(0, linux.AF.INET, posix.SOCK.STREAM, 0, 0);
|
||||
_ = try ring.socket_direct_alloc(0, linux.Af.INET, posix.SOCK.STREAM, 0, 0);
|
||||
try testing.expectEqual(@as(u32, 1), try ring.submit());
|
||||
cqe_socket = try ring.copy_cqe();
|
||||
try testing.expectEqual(posix.E.SUCCESS, cqe_socket.err());
|
||||
|
|
@ -5114,21 +5114,21 @@ pub const Sqe = extern struct {
|
|||
|
||||
pub fn prep_socket(
|
||||
sqe: *Sqe,
|
||||
domain: linux.AF,
|
||||
socket_type: linux.SOCK,
|
||||
protocol: u32, // Enumerate https://github.com/kraj/musl/blob/kraj/master/src/network/proto.c#L7
|
||||
domain: linux.Af,
|
||||
socket_type: linux.Sock,
|
||||
protocol: linux.IpProto, // Enumerate https://github.com/kraj/musl/blob/kraj/master/src/network/proto.c#L7
|
||||
/// flags is unused
|
||||
flags: u32,
|
||||
) void {
|
||||
sqe.prep_rw(.SOCKET, @intCast(domain), 0, protocol, socket_type);
|
||||
sqe.prep_rw(.SOCKET, @intCast(domain), 0, @intFromEnum(protocol), @intCast(@as(u32, @bitCast(socket_type))));
|
||||
sqe.rw_flags = flags;
|
||||
}
|
||||
|
||||
pub fn prep_socket_direct(
|
||||
sqe: *Sqe,
|
||||
domain: linux.AF,
|
||||
domain: linux.Af,
|
||||
socket_type: linux.Sock,
|
||||
protocol: u32, // Enumerate https://github.com/kraj/musl/blob/kraj/master/src/network/proto.c#L7
|
||||
protocol: linux.IpProto, // Enumerate https://github.com/kraj/musl/blob/kraj/master/src/network/proto.c#L7
|
||||
/// flags is unused
|
||||
flags: u32,
|
||||
file_index: u32,
|
||||
|
|
@ -5139,7 +5139,7 @@ pub const Sqe = extern struct {
|
|||
|
||||
pub fn prep_socket_direct_alloc(
|
||||
sqe: *Sqe,
|
||||
domain: linux.AF,
|
||||
domain: linux.Af,
|
||||
socket_type: linux.SOCK,
|
||||
protocol: u32, // Enumerate https://github.com/kraj/musl/blob/kraj/master/src/network/proto.c#L7
|
||||
flags: u32, // flags is unused
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue