std.os reorg: regression fixes to stack_t, and std.Thread

This commit is contained in:
Andrew Kelley 2021-08-31 19:27:54 -07:00
parent 1a492d5156
commit 0932b0d9b3
8 changed files with 29 additions and 27 deletions

View File

@ -558,7 +558,7 @@ const PosixThreadImpl = struct {
.openbsd => {
var count: c_int = undefined;
var count_size: usize = @sizeOf(c_int);
const mib = [_]c_int{ os.CTL.HW, os.HW_NCPUONLINE };
const mib = [_]c_int{ os.CTL.HW, os.system.HW_NCPUONLINE };
os.sysctl(&mib, &count, &count_size, null, 0) catch |err| switch (err) {
error.NameTooLong, error.UnknownName => unreachable,
else => |e| return e,

View File

@ -1436,9 +1436,9 @@ pub const SS_ONSTACK = 1;
pub const SS_DISABLE = 4;
pub const stack_t = extern struct {
ss_sp: [*]u8,
ss_size: isize,
ss_flags: i32,
sp: [*]u8,
size: isize,
flags: i32,
};
pub const S = struct {

View File

@ -547,9 +547,9 @@ pub const NOTE_FFCOPY = 3221225472;
pub const NOTE_PCTRLMASK = 4026531840;
pub const stack_t = extern struct {
ss_sp: [*]u8,
ss_size: isize,
ss_flags: i32,
sp: [*]u8,
size: isize,
flags: i32,
};
pub const S = struct {

View File

@ -1006,9 +1006,9 @@ pub const SS_ONSTACK = 1;
pub const SS_DISABLE = 4;
pub const stack_t = extern struct {
ss_sp: [*]u8,
ss_size: isize,
ss_flags: i32,
sp: [*]u8,
size: isize,
flags: i32,
};
pub const S = struct {

View File

@ -1039,9 +1039,11 @@ pub const mcontext_t = extern struct {
fpregs: [512]u8 align(8),
};
pub const REG_RBP = 12;
pub const REG_RIP = 21;
pub const REG_RSP = 24;
pub const REG = struct {
pub const RBP = 12;
pub const RIP = 21;
pub const RSP = 24;
};
pub const ucontext_t = extern struct {
flags: u32,
@ -1206,9 +1208,9 @@ pub const SS_ONSTACK = 1;
pub const SS_DISABLE = 4;
pub const stack_t = extern struct {
ss_sp: [*]u8,
ss_size: isize,
ss_flags: i32,
sp: [*]u8,
size: isize,
flags: i32,
};
pub const S = struct {

View File

@ -1007,9 +1007,9 @@ pub const SS_ONSTACK = 0x0001;
pub const SS_DISABLE = 0x0004;
pub const stack_t = extern struct {
ss_sp: [*]u8,
ss_size: usize,
ss_flags: c_int,
sp: [*]u8,
size: usize,
flags: c_int,
};
pub const S = struct {

View File

@ -3080,15 +3080,15 @@ pub const SS_AUTODISARM = 1 << 31;
pub const stack_t = if (is_mips)
// IRIX compatible stack_t
extern struct {
ss_sp: [*]u8,
ss_size: usize,
ss_flags: i32,
sp: [*]u8,
size: usize,
flags: i32,
}
else
extern struct {
ss_sp: [*]u8,
ss_flags: i32,
ss_size: usize,
sp: [*]u8,
flags: i32,
size: usize,
};
pub const sigval = extern union {

View File

@ -394,8 +394,8 @@ test "sigaltstack" {
var st: os.stack_t = undefined;
try os.sigaltstack(null, &st);
// Setting a stack size less than MINSIGSTKSZ returns ENOMEM
st.ss_flags = 0;
st.ss_size = 1;
st.flags = 0;
st.size = 1;
try testing.expectError(error.SizeTooSmall, os.sigaltstack(&st, null));
}