zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

packed_struct_mmio.zig (384B) - Raw


      1 pub const GpioRegister = packed struct(u8) {
      2     GPIO0: bool,
      3     GPIO1: bool,
      4     GPIO2: bool,
      5     GPIO3: bool,
      6     reserved: u4 = 0,
      7 };
      8 
      9 const gpio: *volatile GpioRegister = @ptrFromInt(0x0123);
     10 
     11 pub fn writeToGpio(new_states: GpioRegister) void {
     12     // Example of what not to do:
     13     // BAD! gpio.GPIO0 = true; BAD!
     14 
     15     // Instead, do this:
     16     gpio.* = new_states;
     17 }
     18 
     19 // syntax