From b5861193e072ba6780730a559f2b879378b8587f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 28 Jul 2022 13:47:29 -0700 Subject: std: rename std.Target.systemz to .s390x --- lib/std/target.zig | 10 +- lib/std/target/s390x.zig | 621 +++++++++++++++++++++++++++++++++++++++++++++ lib/std/target/systemz.zig | 621 --------------------------------------------- 3 files changed, 626 insertions(+), 626 deletions(-) create mode 100644 lib/std/target/s390x.zig delete mode 100644 lib/std/target/systemz.zig (limited to 'lib/std') diff --git a/lib/std/target.zig b/lib/std/target.zig index f026b0da21..d15eae7dc5 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -453,7 +453,7 @@ pub const Target = struct { pub const riscv = @import("target/riscv.zig"); pub const sparc = @import("target/sparc.zig"); pub const spirv = @import("target/spirv.zig"); - pub const systemz = @import("target/systemz.zig"); + pub const s390x = @import("target/s390x.zig"); pub const ve = @import("target/ve.zig"); pub const wasm = @import("target/wasm.zig"); pub const x86 = @import("target/x86.zig"); @@ -1178,7 +1178,7 @@ pub const Target = struct { .amdgcn => "amdgpu", .riscv32, .riscv64 => "riscv", .sparc, .sparc64, .sparcel => "sparc", - .s390x => "systemz", + .s390x => "s390x", .i386, .x86_64 => "x86", .nvptx, .nvptx64 => "nvptx", .wasm32, .wasm64 => "wasm", @@ -1202,7 +1202,7 @@ pub const Target = struct { .riscv32, .riscv64 => &riscv.all_features, .sparc, .sparc64, .sparcel => &sparc.all_features, .spirv32, .spirv64 => &spirv.all_features, - .s390x => &systemz.all_features, + .s390x => &s390x.all_features, .i386, .x86_64 => &x86.all_features, .nvptx, .nvptx64 => &nvptx.all_features, .ve => &ve.all_features, @@ -1226,7 +1226,7 @@ pub const Target = struct { .amdgcn => comptime allCpusFromDecls(amdgpu.cpu), .riscv32, .riscv64 => comptime allCpusFromDecls(riscv.cpu), .sparc, .sparc64, .sparcel => comptime allCpusFromDecls(sparc.cpu), - .s390x => comptime allCpusFromDecls(systemz.cpu), + .s390x => comptime allCpusFromDecls(s390x.cpu), .i386, .x86_64 => comptime allCpusFromDecls(x86.cpu), .nvptx, .nvptx64 => comptime allCpusFromDecls(nvptx.cpu), .ve => comptime allCpusFromDecls(ve.cpu), @@ -1287,7 +1287,7 @@ pub const Target = struct { .riscv64 => &riscv.cpu.generic_rv64, .sparc, .sparcel => &sparc.cpu.generic, .sparc64 => &sparc.cpu.v9, // 64-bit SPARC needs v9 as the baseline - .s390x => &systemz.cpu.generic, + .s390x => &s390x.cpu.generic, .i386 => &x86.cpu.i386, .x86_64 => &x86.cpu.x86_64, .nvptx, .nvptx64 => &nvptx.cpu.sm_20, diff --git a/lib/std/target/s390x.zig b/lib/std/target/s390x.zig new file mode 100644 index 0000000000..be97570629 --- /dev/null +++ b/lib/std/target/s390x.zig @@ -0,0 +1,621 @@ +//! This file is auto-generated by tools/update_cpu_features.zig. + +const std = @import("../std.zig"); +const CpuFeature = std.Target.Cpu.Feature; +const CpuModel = std.Target.Cpu.Model; + +pub const Feature = enum { + bear_enhancement, + deflate_conversion, + dfp_packed_conversion, + dfp_zoned_conversion, + distinct_ops, + enhanced_dat_2, + enhanced_sort, + execution_hint, + fast_serialization, + fp_extension, + guarded_storage, + high_word, + insert_reference_bits_multiple, + interlocked_access1, + load_and_trap, + load_and_zero_rightmost_byte, + load_store_on_cond, + load_store_on_cond_2, + message_security_assist_extension3, + message_security_assist_extension4, + message_security_assist_extension5, + message_security_assist_extension7, + message_security_assist_extension8, + message_security_assist_extension9, + miscellaneous_extensions, + miscellaneous_extensions_2, + miscellaneous_extensions_3, + nnp_assist, + population_count, + processor_activity_instrumentation, + processor_assist, + reset_dat_protection, + reset_reference_bits_multiple, + soft_float, + transactional_execution, + vector, + vector_enhancements_1, + vector_enhancements_2, + vector_packed_decimal, + vector_packed_decimal_enhancement, + vector_packed_decimal_enhancement_2, +}; + +pub const featureSet = CpuFeature.feature_set_fns(Feature).featureSet; +pub const featureSetHas = CpuFeature.feature_set_fns(Feature).featureSetHas; +pub const featureSetHasAny = CpuFeature.feature_set_fns(Feature).featureSetHasAny; +pub const featureSetHasAll = CpuFeature.feature_set_fns(Feature).featureSetHasAll; + +pub const all_features = blk: { + const len = @typeInfo(Feature).Enum.fields.len; + std.debug.assert(len <= CpuFeature.Set.needed_bit_count); + var result: [len]CpuFeature = undefined; + result[@enumToInt(Feature.bear_enhancement)] = .{ + .llvm_name = "bear-enhancement", + .description = "Assume that the BEAR-enhancement facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.deflate_conversion)] = .{ + .llvm_name = "deflate-conversion", + .description = "Assume that the deflate-conversion facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.dfp_packed_conversion)] = .{ + .llvm_name = "dfp-packed-conversion", + .description = "Assume that the DFP packed-conversion facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.dfp_zoned_conversion)] = .{ + .llvm_name = "dfp-zoned-conversion", + .description = "Assume that the DFP zoned-conversion facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.distinct_ops)] = .{ + .llvm_name = "distinct-ops", + .description = "Assume that the distinct-operands facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.enhanced_dat_2)] = .{ + .llvm_name = "enhanced-dat-2", + .description = "Assume that the enhanced-DAT facility 2 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.enhanced_sort)] = .{ + .llvm_name = "enhanced-sort", + .description = "Assume that the enhanced-sort facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.execution_hint)] = .{ + .llvm_name = "execution-hint", + .description = "Assume that the execution-hint facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.fast_serialization)] = .{ + .llvm_name = "fast-serialization", + .description = "Assume that the fast-serialization facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.fp_extension)] = .{ + .llvm_name = "fp-extension", + .description = "Assume that the floating-point extension facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.guarded_storage)] = .{ + .llvm_name = "guarded-storage", + .description = "Assume that the guarded-storage facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.high_word)] = .{ + .llvm_name = "high-word", + .description = "Assume that the high-word facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.insert_reference_bits_multiple)] = .{ + .llvm_name = "insert-reference-bits-multiple", + .description = "Assume that the insert-reference-bits-multiple facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.interlocked_access1)] = .{ + .llvm_name = "interlocked-access1", + .description = "Assume that interlocked-access facility 1 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.load_and_trap)] = .{ + .llvm_name = "load-and-trap", + .description = "Assume that the load-and-trap facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.load_and_zero_rightmost_byte)] = .{ + .llvm_name = "load-and-zero-rightmost-byte", + .description = "Assume that the load-and-zero-rightmost-byte facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.load_store_on_cond)] = .{ + .llvm_name = "load-store-on-cond", + .description = "Assume that the load/store-on-condition facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.load_store_on_cond_2)] = .{ + .llvm_name = "load-store-on-cond-2", + .description = "Assume that the load/store-on-condition facility 2 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.message_security_assist_extension3)] = .{ + .llvm_name = "message-security-assist-extension3", + .description = "Assume that the message-security-assist extension facility 3 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.message_security_assist_extension4)] = .{ + .llvm_name = "message-security-assist-extension4", + .description = "Assume that the message-security-assist extension facility 4 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.message_security_assist_extension5)] = .{ + .llvm_name = "message-security-assist-extension5", + .description = "Assume that the message-security-assist extension facility 5 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.message_security_assist_extension7)] = .{ + .llvm_name = "message-security-assist-extension7", + .description = "Assume that the message-security-assist extension facility 7 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.message_security_assist_extension8)] = .{ + .llvm_name = "message-security-assist-extension8", + .description = "Assume that the message-security-assist extension facility 8 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.message_security_assist_extension9)] = .{ + .llvm_name = "message-security-assist-extension9", + .description = "Assume that the message-security-assist extension facility 9 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.miscellaneous_extensions)] = .{ + .llvm_name = "miscellaneous-extensions", + .description = "Assume that the miscellaneous-extensions facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.miscellaneous_extensions_2)] = .{ + .llvm_name = "miscellaneous-extensions-2", + .description = "Assume that the miscellaneous-extensions facility 2 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.miscellaneous_extensions_3)] = .{ + .llvm_name = "miscellaneous-extensions-3", + .description = "Assume that the miscellaneous-extensions facility 3 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.nnp_assist)] = .{ + .llvm_name = "nnp-assist", + .description = "Assume that the NNP-assist facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.population_count)] = .{ + .llvm_name = "population-count", + .description = "Assume that the population-count facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.processor_activity_instrumentation)] = .{ + .llvm_name = "processor-activity-instrumentation", + .description = "Assume that the processor-activity-instrumentation facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.processor_assist)] = .{ + .llvm_name = "processor-assist", + .description = "Assume that the processor-assist facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.reset_dat_protection)] = .{ + .llvm_name = "reset-dat-protection", + .description = "Assume that the reset-DAT-protection facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.reset_reference_bits_multiple)] = .{ + .llvm_name = "reset-reference-bits-multiple", + .description = "Assume that the reset-reference-bits-multiple facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.soft_float)] = .{ + .llvm_name = "soft-float", + .description = "Use software emulation for floating point", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.transactional_execution)] = .{ + .llvm_name = "transactional-execution", + .description = "Assume that the transactional-execution facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.vector)] = .{ + .llvm_name = "vector", + .description = "Assume that the vectory facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.vector_enhancements_1)] = .{ + .llvm_name = "vector-enhancements-1", + .description = "Assume that the vector enhancements facility 1 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.vector_enhancements_2)] = .{ + .llvm_name = "vector-enhancements-2", + .description = "Assume that the vector enhancements facility 2 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.vector_packed_decimal)] = .{ + .llvm_name = "vector-packed-decimal", + .description = "Assume that the vector packed decimal facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.vector_packed_decimal_enhancement)] = .{ + .llvm_name = "vector-packed-decimal-enhancement", + .description = "Assume that the vector packed decimal enhancement facility is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@enumToInt(Feature.vector_packed_decimal_enhancement_2)] = .{ + .llvm_name = "vector-packed-decimal-enhancement-2", + .description = "Assume that the vector packed decimal enhancement facility 2 is installed", + .dependencies = featureSet(&[_]Feature{}), + }; + const ti = @typeInfo(Feature); + for (result) |*elem, i| { + elem.index = i; + elem.name = ti.Enum.fields[i].name; + } + break :blk result; +}; + +pub const cpu = struct { + pub const arch10 = CpuModel{ + .name = "arch10", + .llvm_name = "arch10", + .features = featureSet(&[_]Feature{ + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .execution_hint, + .fast_serialization, + .fp_extension, + .high_word, + .interlocked_access1, + .load_and_trap, + .load_store_on_cond, + .message_security_assist_extension3, + .message_security_assist_extension4, + .miscellaneous_extensions, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + }), + }; + pub const arch11 = CpuModel{ + .name = "arch11", + .llvm_name = "arch11", + .features = featureSet(&[_]Feature{ + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .execution_hint, + .fast_serialization, + .fp_extension, + .high_word, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .miscellaneous_extensions, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + }), + }; + pub const arch12 = CpuModel{ + .name = "arch12", + .llvm_name = "arch12", + .features = featureSet(&[_]Feature{ + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .execution_hint, + .fast_serialization, + .fp_extension, + .guarded_storage, + .high_word, + .insert_reference_bits_multiple, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .message_security_assist_extension7, + .message_security_assist_extension8, + .miscellaneous_extensions, + .miscellaneous_extensions_2, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + .vector_enhancements_1, + .vector_packed_decimal, + }), + }; + pub const arch13 = CpuModel{ + .name = "arch13", + .llvm_name = "arch13", + .features = featureSet(&[_]Feature{ + .deflate_conversion, + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .enhanced_sort, + .execution_hint, + .fast_serialization, + .fp_extension, + .guarded_storage, + .high_word, + .insert_reference_bits_multiple, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .message_security_assist_extension7, + .message_security_assist_extension8, + .message_security_assist_extension9, + .miscellaneous_extensions, + .miscellaneous_extensions_2, + .miscellaneous_extensions_3, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + .vector_enhancements_1, + .vector_enhancements_2, + .vector_packed_decimal, + .vector_packed_decimal_enhancement, + }), + }; + pub const arch14 = CpuModel{ + .name = "arch14", + .llvm_name = "arch14", + .features = featureSet(&[_]Feature{ + .bear_enhancement, + .deflate_conversion, + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .enhanced_sort, + .execution_hint, + .fast_serialization, + .fp_extension, + .guarded_storage, + .high_word, + .insert_reference_bits_multiple, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .message_security_assist_extension7, + .message_security_assist_extension8, + .message_security_assist_extension9, + .miscellaneous_extensions, + .miscellaneous_extensions_2, + .miscellaneous_extensions_3, + .nnp_assist, + .population_count, + .processor_activity_instrumentation, + .processor_assist, + .reset_dat_protection, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + .vector_enhancements_1, + .vector_enhancements_2, + .vector_packed_decimal, + .vector_packed_decimal_enhancement, + .vector_packed_decimal_enhancement_2, + }), + }; + pub const arch8 = CpuModel{ + .name = "arch8", + .llvm_name = "arch8", + .features = featureSet(&[_]Feature{}), + }; + pub const arch9 = CpuModel{ + .name = "arch9", + .llvm_name = "arch9", + .features = featureSet(&[_]Feature{ + .distinct_ops, + .fast_serialization, + .fp_extension, + .high_word, + .interlocked_access1, + .load_store_on_cond, + .message_security_assist_extension3, + .message_security_assist_extension4, + .population_count, + .reset_reference_bits_multiple, + }), + }; + pub const generic = CpuModel{ + .name = "generic", + .llvm_name = "generic", + .features = featureSet(&[_]Feature{}), + }; + pub const z10 = CpuModel{ + .name = "z10", + .llvm_name = "z10", + .features = featureSet(&[_]Feature{}), + }; + pub const z13 = CpuModel{ + .name = "z13", + .llvm_name = "z13", + .features = featureSet(&[_]Feature{ + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .execution_hint, + .fast_serialization, + .fp_extension, + .high_word, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .miscellaneous_extensions, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + }), + }; + pub const z14 = CpuModel{ + .name = "z14", + .llvm_name = "z14", + .features = featureSet(&[_]Feature{ + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .execution_hint, + .fast_serialization, + .fp_extension, + .guarded_storage, + .high_word, + .insert_reference_bits_multiple, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .message_security_assist_extension7, + .message_security_assist_extension8, + .miscellaneous_extensions, + .miscellaneous_extensions_2, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + .vector_enhancements_1, + .vector_packed_decimal, + }), + }; + pub const z15 = CpuModel{ + .name = "z15", + .llvm_name = "z15", + .features = featureSet(&[_]Feature{ + .deflate_conversion, + .dfp_packed_conversion, + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .enhanced_sort, + .execution_hint, + .fast_serialization, + .fp_extension, + .guarded_storage, + .high_word, + .insert_reference_bits_multiple, + .interlocked_access1, + .load_and_trap, + .load_and_zero_rightmost_byte, + .load_store_on_cond, + .load_store_on_cond_2, + .message_security_assist_extension3, + .message_security_assist_extension4, + .message_security_assist_extension5, + .message_security_assist_extension7, + .message_security_assist_extension8, + .message_security_assist_extension9, + .miscellaneous_extensions, + .miscellaneous_extensions_2, + .miscellaneous_extensions_3, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + .vector, + .vector_enhancements_1, + .vector_enhancements_2, + .vector_packed_decimal, + .vector_packed_decimal_enhancement, + }), + }; + pub const z196 = CpuModel{ + .name = "z196", + .llvm_name = "z196", + .features = featureSet(&[_]Feature{ + .distinct_ops, + .fast_serialization, + .fp_extension, + .high_word, + .interlocked_access1, + .load_store_on_cond, + .message_security_assist_extension3, + .message_security_assist_extension4, + .population_count, + .reset_reference_bits_multiple, + }), + }; + pub const zEC12 = CpuModel{ + .name = "zEC12", + .llvm_name = "zEC12", + .features = featureSet(&[_]Feature{ + .dfp_zoned_conversion, + .distinct_ops, + .enhanced_dat_2, + .execution_hint, + .fast_serialization, + .fp_extension, + .high_word, + .interlocked_access1, + .load_and_trap, + .load_store_on_cond, + .message_security_assist_extension3, + .message_security_assist_extension4, + .miscellaneous_extensions, + .population_count, + .processor_assist, + .reset_reference_bits_multiple, + .transactional_execution, + }), + }; +}; diff --git a/lib/std/target/systemz.zig b/lib/std/target/systemz.zig deleted file mode 100644 index be97570629..0000000000 --- a/lib/std/target/systemz.zig +++ /dev/null @@ -1,621 +0,0 @@ -//! This file is auto-generated by tools/update_cpu_features.zig. - -const std = @import("../std.zig"); -const CpuFeature = std.Target.Cpu.Feature; -const CpuModel = std.Target.Cpu.Model; - -pub const Feature = enum { - bear_enhancement, - deflate_conversion, - dfp_packed_conversion, - dfp_zoned_conversion, - distinct_ops, - enhanced_dat_2, - enhanced_sort, - execution_hint, - fast_serialization, - fp_extension, - guarded_storage, - high_word, - insert_reference_bits_multiple, - interlocked_access1, - load_and_trap, - load_and_zero_rightmost_byte, - load_store_on_cond, - load_store_on_cond_2, - message_security_assist_extension3, - message_security_assist_extension4, - message_security_assist_extension5, - message_security_assist_extension7, - message_security_assist_extension8, - message_security_assist_extension9, - miscellaneous_extensions, - miscellaneous_extensions_2, - miscellaneous_extensions_3, - nnp_assist, - population_count, - processor_activity_instrumentation, - processor_assist, - reset_dat_protection, - reset_reference_bits_multiple, - soft_float, - transactional_execution, - vector, - vector_enhancements_1, - vector_enhancements_2, - vector_packed_decimal, - vector_packed_decimal_enhancement, - vector_packed_decimal_enhancement_2, -}; - -pub const featureSet = CpuFeature.feature_set_fns(Feature).featureSet; -pub const featureSetHas = CpuFeature.feature_set_fns(Feature).featureSetHas; -pub const featureSetHasAny = CpuFeature.feature_set_fns(Feature).featureSetHasAny; -pub const featureSetHasAll = CpuFeature.feature_set_fns(Feature).featureSetHasAll; - -pub const all_features = blk: { - const len = @typeInfo(Feature).Enum.fields.len; - std.debug.assert(len <= CpuFeature.Set.needed_bit_count); - var result: [len]CpuFeature = undefined; - result[@enumToInt(Feature.bear_enhancement)] = .{ - .llvm_name = "bear-enhancement", - .description = "Assume that the BEAR-enhancement facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.deflate_conversion)] = .{ - .llvm_name = "deflate-conversion", - .description = "Assume that the deflate-conversion facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.dfp_packed_conversion)] = .{ - .llvm_name = "dfp-packed-conversion", - .description = "Assume that the DFP packed-conversion facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.dfp_zoned_conversion)] = .{ - .llvm_name = "dfp-zoned-conversion", - .description = "Assume that the DFP zoned-conversion facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.distinct_ops)] = .{ - .llvm_name = "distinct-ops", - .description = "Assume that the distinct-operands facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.enhanced_dat_2)] = .{ - .llvm_name = "enhanced-dat-2", - .description = "Assume that the enhanced-DAT facility 2 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.enhanced_sort)] = .{ - .llvm_name = "enhanced-sort", - .description = "Assume that the enhanced-sort facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.execution_hint)] = .{ - .llvm_name = "execution-hint", - .description = "Assume that the execution-hint facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.fast_serialization)] = .{ - .llvm_name = "fast-serialization", - .description = "Assume that the fast-serialization facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.fp_extension)] = .{ - .llvm_name = "fp-extension", - .description = "Assume that the floating-point extension facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.guarded_storage)] = .{ - .llvm_name = "guarded-storage", - .description = "Assume that the guarded-storage facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.high_word)] = .{ - .llvm_name = "high-word", - .description = "Assume that the high-word facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.insert_reference_bits_multiple)] = .{ - .llvm_name = "insert-reference-bits-multiple", - .description = "Assume that the insert-reference-bits-multiple facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.interlocked_access1)] = .{ - .llvm_name = "interlocked-access1", - .description = "Assume that interlocked-access facility 1 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.load_and_trap)] = .{ - .llvm_name = "load-and-trap", - .description = "Assume that the load-and-trap facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.load_and_zero_rightmost_byte)] = .{ - .llvm_name = "load-and-zero-rightmost-byte", - .description = "Assume that the load-and-zero-rightmost-byte facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.load_store_on_cond)] = .{ - .llvm_name = "load-store-on-cond", - .description = "Assume that the load/store-on-condition facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.load_store_on_cond_2)] = .{ - .llvm_name = "load-store-on-cond-2", - .description = "Assume that the load/store-on-condition facility 2 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.message_security_assist_extension3)] = .{ - .llvm_name = "message-security-assist-extension3", - .description = "Assume that the message-security-assist extension facility 3 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.message_security_assist_extension4)] = .{ - .llvm_name = "message-security-assist-extension4", - .description = "Assume that the message-security-assist extension facility 4 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.message_security_assist_extension5)] = .{ - .llvm_name = "message-security-assist-extension5", - .description = "Assume that the message-security-assist extension facility 5 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.message_security_assist_extension7)] = .{ - .llvm_name = "message-security-assist-extension7", - .description = "Assume that the message-security-assist extension facility 7 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.message_security_assist_extension8)] = .{ - .llvm_name = "message-security-assist-extension8", - .description = "Assume that the message-security-assist extension facility 8 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.message_security_assist_extension9)] = .{ - .llvm_name = "message-security-assist-extension9", - .description = "Assume that the message-security-assist extension facility 9 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.miscellaneous_extensions)] = .{ - .llvm_name = "miscellaneous-extensions", - .description = "Assume that the miscellaneous-extensions facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.miscellaneous_extensions_2)] = .{ - .llvm_name = "miscellaneous-extensions-2", - .description = "Assume that the miscellaneous-extensions facility 2 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.miscellaneous_extensions_3)] = .{ - .llvm_name = "miscellaneous-extensions-3", - .description = "Assume that the miscellaneous-extensions facility 3 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.nnp_assist)] = .{ - .llvm_name = "nnp-assist", - .description = "Assume that the NNP-assist facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.population_count)] = .{ - .llvm_name = "population-count", - .description = "Assume that the population-count facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.processor_activity_instrumentation)] = .{ - .llvm_name = "processor-activity-instrumentation", - .description = "Assume that the processor-activity-instrumentation facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.processor_assist)] = .{ - .llvm_name = "processor-assist", - .description = "Assume that the processor-assist facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.reset_dat_protection)] = .{ - .llvm_name = "reset-dat-protection", - .description = "Assume that the reset-DAT-protection facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.reset_reference_bits_multiple)] = .{ - .llvm_name = "reset-reference-bits-multiple", - .description = "Assume that the reset-reference-bits-multiple facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.soft_float)] = .{ - .llvm_name = "soft-float", - .description = "Use software emulation for floating point", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.transactional_execution)] = .{ - .llvm_name = "transactional-execution", - .description = "Assume that the transactional-execution facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.vector)] = .{ - .llvm_name = "vector", - .description = "Assume that the vectory facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.vector_enhancements_1)] = .{ - .llvm_name = "vector-enhancements-1", - .description = "Assume that the vector enhancements facility 1 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.vector_enhancements_2)] = .{ - .llvm_name = "vector-enhancements-2", - .description = "Assume that the vector enhancements facility 2 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.vector_packed_decimal)] = .{ - .llvm_name = "vector-packed-decimal", - .description = "Assume that the vector packed decimal facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.vector_packed_decimal_enhancement)] = .{ - .llvm_name = "vector-packed-decimal-enhancement", - .description = "Assume that the vector packed decimal enhancement facility is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - result[@enumToInt(Feature.vector_packed_decimal_enhancement_2)] = .{ - .llvm_name = "vector-packed-decimal-enhancement-2", - .description = "Assume that the vector packed decimal enhancement facility 2 is installed", - .dependencies = featureSet(&[_]Feature{}), - }; - const ti = @typeInfo(Feature); - for (result) |*elem, i| { - elem.index = i; - elem.name = ti.Enum.fields[i].name; - } - break :blk result; -}; - -pub const cpu = struct { - pub const arch10 = CpuModel{ - .name = "arch10", - .llvm_name = "arch10", - .features = featureSet(&[_]Feature{ - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .execution_hint, - .fast_serialization, - .fp_extension, - .high_word, - .interlocked_access1, - .load_and_trap, - .load_store_on_cond, - .message_security_assist_extension3, - .message_security_assist_extension4, - .miscellaneous_extensions, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - }), - }; - pub const arch11 = CpuModel{ - .name = "arch11", - .llvm_name = "arch11", - .features = featureSet(&[_]Feature{ - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .execution_hint, - .fast_serialization, - .fp_extension, - .high_word, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .miscellaneous_extensions, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - }), - }; - pub const arch12 = CpuModel{ - .name = "arch12", - .llvm_name = "arch12", - .features = featureSet(&[_]Feature{ - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .execution_hint, - .fast_serialization, - .fp_extension, - .guarded_storage, - .high_word, - .insert_reference_bits_multiple, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .message_security_assist_extension7, - .message_security_assist_extension8, - .miscellaneous_extensions, - .miscellaneous_extensions_2, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - .vector_enhancements_1, - .vector_packed_decimal, - }), - }; - pub const arch13 = CpuModel{ - .name = "arch13", - .llvm_name = "arch13", - .features = featureSet(&[_]Feature{ - .deflate_conversion, - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .enhanced_sort, - .execution_hint, - .fast_serialization, - .fp_extension, - .guarded_storage, - .high_word, - .insert_reference_bits_multiple, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .message_security_assist_extension7, - .message_security_assist_extension8, - .message_security_assist_extension9, - .miscellaneous_extensions, - .miscellaneous_extensions_2, - .miscellaneous_extensions_3, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - .vector_enhancements_1, - .vector_enhancements_2, - .vector_packed_decimal, - .vector_packed_decimal_enhancement, - }), - }; - pub const arch14 = CpuModel{ - .name = "arch14", - .llvm_name = "arch14", - .features = featureSet(&[_]Feature{ - .bear_enhancement, - .deflate_conversion, - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .enhanced_sort, - .execution_hint, - .fast_serialization, - .fp_extension, - .guarded_storage, - .high_word, - .insert_reference_bits_multiple, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .message_security_assist_extension7, - .message_security_assist_extension8, - .message_security_assist_extension9, - .miscellaneous_extensions, - .miscellaneous_extensions_2, - .miscellaneous_extensions_3, - .nnp_assist, - .population_count, - .processor_activity_instrumentation, - .processor_assist, - .reset_dat_protection, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - .vector_enhancements_1, - .vector_enhancements_2, - .vector_packed_decimal, - .vector_packed_decimal_enhancement, - .vector_packed_decimal_enhancement_2, - }), - }; - pub const arch8 = CpuModel{ - .name = "arch8", - .llvm_name = "arch8", - .features = featureSet(&[_]Feature{}), - }; - pub const arch9 = CpuModel{ - .name = "arch9", - .llvm_name = "arch9", - .features = featureSet(&[_]Feature{ - .distinct_ops, - .fast_serialization, - .fp_extension, - .high_word, - .interlocked_access1, - .load_store_on_cond, - .message_security_assist_extension3, - .message_security_assist_extension4, - .population_count, - .reset_reference_bits_multiple, - }), - }; - pub const generic = CpuModel{ - .name = "generic", - .llvm_name = "generic", - .features = featureSet(&[_]Feature{}), - }; - pub const z10 = CpuModel{ - .name = "z10", - .llvm_name = "z10", - .features = featureSet(&[_]Feature{}), - }; - pub const z13 = CpuModel{ - .name = "z13", - .llvm_name = "z13", - .features = featureSet(&[_]Feature{ - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .execution_hint, - .fast_serialization, - .fp_extension, - .high_word, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .miscellaneous_extensions, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - }), - }; - pub const z14 = CpuModel{ - .name = "z14", - .llvm_name = "z14", - .features = featureSet(&[_]Feature{ - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .execution_hint, - .fast_serialization, - .fp_extension, - .guarded_storage, - .high_word, - .insert_reference_bits_multiple, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .message_security_assist_extension7, - .message_security_assist_extension8, - .miscellaneous_extensions, - .miscellaneous_extensions_2, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - .vector_enhancements_1, - .vector_packed_decimal, - }), - }; - pub const z15 = CpuModel{ - .name = "z15", - .llvm_name = "z15", - .features = featureSet(&[_]Feature{ - .deflate_conversion, - .dfp_packed_conversion, - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .enhanced_sort, - .execution_hint, - .fast_serialization, - .fp_extension, - .guarded_storage, - .high_word, - .insert_reference_bits_multiple, - .interlocked_access1, - .load_and_trap, - .load_and_zero_rightmost_byte, - .load_store_on_cond, - .load_store_on_cond_2, - .message_security_assist_extension3, - .message_security_assist_extension4, - .message_security_assist_extension5, - .message_security_assist_extension7, - .message_security_assist_extension8, - .message_security_assist_extension9, - .miscellaneous_extensions, - .miscellaneous_extensions_2, - .miscellaneous_extensions_3, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - .vector, - .vector_enhancements_1, - .vector_enhancements_2, - .vector_packed_decimal, - .vector_packed_decimal_enhancement, - }), - }; - pub const z196 = CpuModel{ - .name = "z196", - .llvm_name = "z196", - .features = featureSet(&[_]Feature{ - .distinct_ops, - .fast_serialization, - .fp_extension, - .high_word, - .interlocked_access1, - .load_store_on_cond, - .message_security_assist_extension3, - .message_security_assist_extension4, - .population_count, - .reset_reference_bits_multiple, - }), - }; - pub const zEC12 = CpuModel{ - .name = "zEC12", - .llvm_name = "zEC12", - .features = featureSet(&[_]Feature{ - .dfp_zoned_conversion, - .distinct_ops, - .enhanced_dat_2, - .execution_hint, - .fast_serialization, - .fp_extension, - .high_word, - .interlocked_access1, - .load_and_trap, - .load_store_on_cond, - .message_security_assist_extension3, - .message_security_assist_extension4, - .miscellaneous_extensions, - .population_count, - .processor_assist, - .reset_reference_bits_multiple, - .transactional_execution, - }), - }; -}; -- cgit v1.2.3 From a48251735787f590491caf4e446dad74c66aa13c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 28 Jul 2022 18:40:01 -0700 Subject: std.debug: default signal handler also handles SIGFPE --- lib/std/debug.zig | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/std') diff --git a/lib/std/debug.zig b/lib/std/debug.zig index b406fed471..7d0dcd35d0 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -1784,6 +1784,7 @@ pub fn updateSegfaultHandler(act: ?*const os.Sigaction) error{OperationNotSuppor try os.sigaction(os.SIG.SEGV, act, null); try os.sigaction(os.SIG.ILL, act, null); try os.sigaction(os.SIG.BUS, act, null); + try os.sigaction(os.SIG.FPE, act, null); } /// Attaches a global SIGSEGV handler which calls @panic("segmentation fault"); @@ -1845,6 +1846,7 @@ fn handleSegfaultPosix(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const any os.SIG.SEGV => stderr.print("Segmentation fault at address 0x{x}\n", .{addr}), os.SIG.ILL => stderr.print("Illegal instruction at address 0x{x}\n", .{addr}), os.SIG.BUS => stderr.print("Bus error at address 0x{x}\n", .{addr}), + os.SIG.FPE => stderr.print("Arithmetic exception at address 0x{x}\n", .{addr}), else => unreachable, } catch os.abort(); } -- cgit v1.2.3 From d26d696ee01d3a17d17cde24c8841e7f551ba5f2 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Thu, 28 Jul 2022 22:38:48 +0300 Subject: parser: require expression after colon in slice expr --- lib/std/zig/parse.zig | 2 +- lib/std/zig/parser_test.zig | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'lib/std') diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig index f3c219cfc6..2a7d2623ef 100644 --- a/lib/std/zig/parse.zig +++ b/lib/std/zig/parse.zig @@ -3257,7 +3257,7 @@ const Parser = struct { if (p.eatToken(.ellipsis2)) |_| { const end_expr = try p.parseExpr(); if (p.eatToken(.colon)) |_| { - const sentinel = try p.parseExpr(); + const sentinel = try p.expectExpr(); _ = try p.expectToken(.r_bracket); return p.addNode(.{ .tag = .slice_sentinel, diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index 38c2960f31..a74d53f21c 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -5118,6 +5118,14 @@ test "zig fmt: while continue expr" { }); } +test "zig fmt: error for missing sentinel value in sentinel slice" { + try testError( + \\const foo = foo[0..:]; + , &[_]Error{ + .expected_expr, + }); +} + test "zig fmt: error for invalid bit range" { try testError( \\var x: []align(0:0:0)u8 = bar; -- cgit v1.2.3 From 1a1b7a3afdd3edac9e8e351ce7e21c91404f8307 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Sun, 31 Jul 2022 02:41:32 -0700 Subject: Linux: Add IN_MASK_CREATE and corresponding error handling in inotify_add_watch From https://man7.org/linux/man-pages/man7/inotify.7.html > **IN_MASK_CREATE** (since Linux 4.18) > > Watch pathname only if it does not already have a watch associated with it; the error EEXIST results if pathname is already being watched. --- lib/std/os.zig | 2 ++ lib/std/os/linux.zig | 1 + 2 files changed, 3 insertions(+) (limited to 'lib/std') diff --git a/lib/std/os.zig b/lib/std/os.zig index 5683c5300a..1192c72629 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -4244,6 +4244,7 @@ pub const INotifyAddWatchError = error{ SystemResources, UserResourceLimitReached, NotDir, + WatchAlreadyExists, } || UnexpectedError; /// add a watch to an initialized inotify instance @@ -4266,6 +4267,7 @@ pub fn inotify_add_watchZ(inotify_fd: i32, pathname: [*:0]const u8, mask: u32) I .NOMEM => return error.SystemResources, .NOSPC => return error.UserResourceLimitReached, .NOTDIR => return error.NotDir, + .EXIST => return error.WatchAlreadyExists, else => |err| return unexpectedErrno(err), } } diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index aa127db8ed..ae9b441b60 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -2976,6 +2976,7 @@ pub const IN = struct { pub const ONLYDIR = 0x01000000; pub const DONT_FOLLOW = 0x02000000; pub const EXCL_UNLINK = 0x04000000; + pub const MASK_CREATE = 0x10000000; pub const MASK_ADD = 0x20000000; pub const ISDIR = 0x40000000; -- cgit v1.2.3